40 pm.
addNestedPass<func::FuncOp>(createLinalgGeneralizeNamedOpsPass());
41 pm.
addNestedPass<func::FuncOp>(createLinalgElementwiseOpFusionPass());
46 options.testBufferizationAnalysisOnly),
51 options.force32BitVectorIndices,
53 options.sparsificationOptions().sparseEmitStrategy,
54 options.sparsificationOptions().parallelizationStrategy));
57 if (
options.testBufferizationAnalysisOnly)
65 const bool gpuCodegen =
options.gpuTriple.hasValue();
69 pm.
addNestedPass<gpu::GPUModuleOp>(createStripDebugInfoPass());
70 pm.
addNestedPass<gpu::GPUModuleOp>(createSCFToControlFlowPass());
71 pm.
addNestedPass<gpu::GPUModuleOp>(createConvertGpuOpsToNVVMOps());
78 pm.
addNestedPass<func::FuncOp>(createConvertLinalgToLoopsPass());
80 pm.
addNestedPass<func::FuncOp>(memref::createExpandReallocPass());
82 pm.
addPass(memref::createExpandStridedMetadataPass());
83 pm.
addPass(createLowerAffinePass());
85 createConvertVectorToLLVMPass(
options.convertVectorToLLVMOptions()));
86 pm.
addNestedPass<func::FuncOp>(createConvertComplexToStandardPass());
87 pm.
addNestedPass<func::FuncOp>(arith::createArithExpandOpsPass());
88 pm.
addNestedPass<func::FuncOp>(createConvertMathToLLVMPass());
89 pm.
addPass(createConvertMathToLibmPass());
90 pm.
addPass(createConvertComplexToLibm());
92 createConvertVectorToLLVMPass(
options.convertVectorToLLVMOptions()));
96 GpuNVVMAttachTargetOptions nvvmTargetOptions;
97 nvvmTargetOptions.triple =
options.gpuTriple;
98 nvvmTargetOptions.chip =
options.gpuChip;
99 nvvmTargetOptions.features =
options.gpuFeatures;
100 pm.
addPass(createGpuNVVMAttachTarget(nvvmTargetOptions));
101 pm.
addPass(createGpuToLLVMConversionPass());
102 GpuModuleToBinaryPassOptions gpuModuleToBinaryPassOptions;
103 gpuModuleToBinaryPassOptions.compilationTarget =
options.gpuFormat;
104 pm.
addPass(createGpuModuleToBinaryPass(gpuModuleToBinaryPassOptions));
108 pm.
addPass(createConvertToLLVMPass());
111 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.