29 pm.
addNestedPass<func::FuncOp>(createLinalgGeneralizeNamedOpsPass());
30 pm.
addNestedPass<func::FuncOp>(createLinalgElementwiseOpFusionPass());
35 options.testBufferizationAnalysisOnly),
40 options.force32BitVectorIndices,
42 options.sparsificationOptions().sparseEmitStrategy,
43 options.sparsificationOptions().parallelizationStrategy));
46 if (
options.testBufferizationAnalysisOnly)
54 const bool gpuCodegen =
options.gpuTriple.hasValue();
58 pm.
addNestedPass<gpu::GPUModuleOp>(createStripDebugInfoPass());
59 pm.
addNestedPass<gpu::GPUModuleOp>(createSCFToControlFlowPass());
60 pm.
addNestedPass<gpu::GPUModuleOp>(createConvertGpuOpsToNVVMOps());
67 pm.
addNestedPass<func::FuncOp>(createConvertLinalgToLoopsPass());
69 pm.
addNestedPass<func::FuncOp>(memref::createExpandReallocPass());
71 pm.
addPass(memref::createExpandStridedMetadataPass());
72 pm.
addPass(createLowerAffinePass());
74 createConvertVectorToLLVMPass(
options.convertVectorToLLVMOptions()));
75 pm.
addNestedPass<func::FuncOp>(createConvertComplexToStandardPass());
76 pm.
addNestedPass<func::FuncOp>(arith::createArithExpandOpsPass());
77 pm.
addNestedPass<func::FuncOp>(createConvertMathToLLVMPass());
78 pm.
addPass(createConvertMathToLibmPass());
79 pm.
addPass(createConvertComplexToLibm());
81 createConvertVectorToLLVMPass(
options.convertVectorToLLVMOptions()));
85 GpuNVVMAttachTargetOptions nvvmTargetOptions;
86 nvvmTargetOptions.triple =
options.gpuTriple;
87 nvvmTargetOptions.chip =
options.gpuChip;
88 nvvmTargetOptions.features =
options.gpuFeatures;
89 pm.
addPass(createGpuNVVMAttachTarget(nvvmTargetOptions));
90 pm.
addPass(createGpuToLLVMConversionPass());
91 GpuModuleToBinaryPassOptions gpuModuleToBinaryPassOptions;
92 gpuModuleToBinaryPassOptions.compilationTarget =
options.gpuFormat;
93 pm.
addPass(createGpuModuleToBinaryPass(gpuModuleToBinaryPassOptions));
97 pm.
addPass(createConvertToLLVMPass());
100 pm.
addPass(createReconcileUnrealizedCastsPass());
std::unique_ptr< Pass > createCanonicalizerPass(const GreedyRewriteConfig &config, ArrayRef< std::string > disabledPatterns={}, ArrayRef< std::string > enabledPatterns={})
Creates an instance of the Canonicalizer pass with the specified config.