[spirv] Use addNestedPass<FuncOp>() for passes working on functions (#3745)
This fixes crashes when running the whole pipeline because of pass
manager target op mismatch.
diff --git a/iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp b/iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp
index 559b72e..b014e19 100644
--- a/iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp
+++ b/iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp
@@ -98,7 +98,7 @@
//===--------------------------------------------------------------------===//
pm.addPass(createConvertToGPUPass());
if (options.enableVectorization) {
- pm.addPass(createVectorToGPUPass());
+ pm.addNestedPass<FuncOp>(createVectorToGPUPass());
}
pm.addPass(createLowerAffinePass());
pm.addPass(createCanonicalizerPass());
@@ -152,7 +152,7 @@
pm.addPass(createCSEPass());
if (options.enableVectorization) {
pm.addPass(createVectorizeMemref());
- pm.addPass(createForOpCanonicalizationPass());
+ pm.addNestedPass<FuncOp>(createForOpCanonicalizationPass());
pm.addPass(createCanonicalizerPass());
pm.addPass(createCSEPass());
}