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>(createSCFToControlFlowPass());
59 pm.
addNestedPass<gpu::GPUModuleOp>(createConvertGpuOpsToNVVMOps());
66 pm.
addNestedPass<func::FuncOp>(createConvertLinalgToLoopsPass());
68 pm.
addNestedPass<func::FuncOp>(memref::createExpandReallocPass());
70 pm.
addPass(memref::createExpandStridedMetadataPass());
71 pm.
addPass(createLowerAffinePass());
73 createConvertVectorToLLVMPass(
options.convertVectorToLLVMOptions()));
74 pm.
addNestedPass<func::FuncOp>(createConvertComplexToStandardPass());
75 pm.
addNestedPass<func::FuncOp>(arith::createArithExpandOpsPass());
76 pm.
addNestedPass<func::FuncOp>(createConvertMathToLLVMPass());
77 pm.
addPass(createConvertMathToLibmPass());
78 pm.
addPass(createConvertComplexToLibm());
80 createConvertVectorToLLVMPass(
options.convertVectorToLLVMOptions()));
84 GpuNVVMAttachTargetOptions nvvmTargetOptions;
85 nvvmTargetOptions.triple =
options.gpuTriple;
86 nvvmTargetOptions.chip =
options.gpuChip;
87 nvvmTargetOptions.features =
options.gpuFeatures;
88 pm.
addPass(createGpuNVVMAttachTarget(nvvmTargetOptions));
89 pm.
addPass(createGpuToLLVMConversionPass());
90 GpuModuleToBinaryPassOptions gpuModuleToBinaryPassOptions;
91 gpuModuleToBinaryPassOptions.compilationTarget =
options.gpuFormat;
92 pm.
addPass(createGpuModuleToBinaryPass(gpuModuleToBinaryPassOptions));
96 pm.
addPass(createConvertToLLVMPass());
99 pm.
addPass(createReconcileUnrealizedCastsPass());