Skip to content

Commit 6d0f100

Browse files
Fix more AIR e2e
1 parent 7cd9666 commit 6d0f100

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Passes.cpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -474,11 +474,6 @@ void addConvDecomposePassPipeline(OpPassManager &funcPassManager,
474474
LinalgFoldUnitExtentDimsPassOptions opts;
475475
opts.useRankReducingSlices = true;
476476
funcPassManager.addPass(mlir::createLinalgFoldUnitExtentDimsPass(opts));
477-
478-
// Vectorization passes
479-
// FIXME(newling) https://github.com/nod-ai/iree-amd-aie/issues/820
480-
enableVectorizationPasses = false;
481-
appendVectorizationToPipeline(funcPassManager, enableVectorizationPasses);
482477
funcPassManager.addPass(createCanonicalizerPass());
483478

484479
// Comprehensive bufferization
@@ -521,7 +516,8 @@ void buildAMDAIETransformPassPipeline(
521516
enableVectorizationPasses);
522517
} else if (useLowerToAIEPipeline == LowerToAIEPassPipeline::AIR) {
523518
addMLIRAIRLoweringPasses(modulePassManager, device, useTilePipeline,
524-
matmulElementwiseFusion);
519+
matmulElementwiseFusion,
520+
enableVectorizationPasses);
525521
} else {
526522
assert(
527523
false &&
@@ -567,6 +563,7 @@ void addAMDAIEObjectFifoLoweringPasses(OpPassManager &passManager,
567563
{
568564
// Vectorization passes
569565
OpPassManager &funcPassManager = passManager.nest<func::FuncOp>();
566+
// FIXME(newling) https://github.com/nod-ai/iree-amd-aie/issues/820
570567
enableVectorizationPasses =
571568
(useTilePipeline == TilePassPipeline::ConvDecomposePipeline)
572569
? false
@@ -679,10 +676,21 @@ void addMLIRAIELoweringPasses(OpPassManager &pm) {
679676
// for details.
680677
void addMLIRAIRLoweringPasses(OpPassManager &passManager, AMDAIEDevice device,
681678
TilePassPipeline useTilePipeline,
682-
bool matmulElementwiseFusion) {
679+
bool matmulElementwiseFusion,
680+
bool enableVectorizationPasses) {
683681
// Add passes for preparing for lowering to MLIR-AIR
684682
passManager.addPass(createEraseHALDescriptorTypeFromMemRefPass());
685683
passManager.addPass(memref::createFoldMemRefAliasOpsPass());
684+
{
685+
// Vectorization passes
686+
OpPassManager &funcPassManager = passManager.nest<func::FuncOp>();
687+
// FIXME(newling) https://github.com/nod-ai/iree-amd-aie/issues/820
688+
enableVectorizationPasses =
689+
(useTilePipeline == TilePassPipeline::ConvDecomposePipeline)
690+
? false
691+
: enableVectorizationPasses;
692+
appendVectorizationToPipeline(funcPassManager, enableVectorizationPasses);
693+
}
686694
passManager.addPass(createAMDAIEBridgeToAIRPass());
687695

688696
// Running canonicalization for all pipelines here results in failures.
@@ -847,8 +855,6 @@ void addMLIRAIRLoweringPasses(OpPassManager &passManager, AMDAIEDevice device,
847855
addMLIRAIELoweringPasses(passManager);
848856
}
849857

850-
851-
852858
// NOTE: this runs on the top-level program module containing all hal.executable
853859
// ops.
854860
void buildAMDAIELinkingPassPipeline(OpPassManager &passManager) {

compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Passes.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ void addAMDAIEObjectFifoLoweringPasses(OpPassManager &passManager,
2424
/// currently the default passes used for lowering after IREEs tiling.
2525
void addMLIRAIRLoweringPasses(OpPassManager &passManager, AMDAIEDevice device,
2626
TilePassPipeline useTilePipeline,
27-
bool matmulElementwiseFusion);
27+
bool matmulElementwiseFusion,
28+
bool enableVectorizationPasses);
2829

2930
/// Add lowering passes from MLIR-AIE. This is
3031
/// currently the default passes used for lowering from AIE dialect.

0 commit comments

Comments
 (0)