[CodeGen] Remove IREE folding patterns from ConcretizePadResultShape. (#14408) The patterns are expected to be used right after distribution. User should call them explicitly, not including them in the pass. Fixes https://github.com/openxla/iree/issues/14406
diff --git a/compiler/src/iree/compiler/Codegen/Common/ConcretizePadResultShape.cpp b/compiler/src/iree/compiler/Codegen/Common/ConcretizePadResultShape.cpp index 98556fd..321e29b 100644 --- a/compiler/src/iree/compiler/Codegen/Common/ConcretizePadResultShape.cpp +++ b/compiler/src/iree/compiler/Codegen/Common/ConcretizePadResultShape.cpp
@@ -168,9 +168,6 @@ // Pulling in upstream scf.for and affine.min canonicalization patterns. // They work on tiled (but not distributed) loops. scf::populateSCFForLoopCanonicalizationPatterns(patterns); - // Pulling in IREE scf.for and affine.min canonicalization patterns. - // They work on tiled and distributed loops. - populateFoldAffineMinInDistributedLoopsPatterns(patterns, numWorkgroups); // Pulling in flow.dispatch.tensor.load op canonicalization patterns. // Tiling can generate dim ops taking them as operands. IREE::Flow::DispatchTensorLoadOp::getCanonicalizationPatterns(patterns,
diff --git a/compiler/src/iree/compiler/Codegen/SPIRV/SPIRVTile.cpp b/compiler/src/iree/compiler/Codegen/SPIRV/SPIRVTile.cpp index 5ed0a8a..97eac04 100644 --- a/compiler/src/iree/compiler/Codegen/SPIRV/SPIRVTile.cpp +++ b/compiler/src/iree/compiler/Codegen/SPIRV/SPIRVTile.cpp
@@ -227,6 +227,7 @@ RewritePatternSet patterns(context); SmallVector<int64_t> numWorkgroups = getStaticNumWorkgroups(funcOp); populateConcretizePadResultShapePatterns(patterns, numWorkgroups); + populateFoldAffineMinInDistributedLoopsPatterns(patterns, numWorkgroups); (void)applyPatternsAndFoldGreedily(funcOp, std::move(patterns)); LLVM_DEBUG({