45void buildCommonPassPipeline(
53 amdgpuToROCDLOpt.
arch = arch;
63 rocdlTargetOptions.
arch = arch;
101void buildHostPostPipeline(
123 buildCommonPassPipeline(pm,
options);
126 buildGpuPassPipeline(pm,
options);
129 buildHostPostPipeline(pm,
options);
134 "gpu-lower-to-rocdl-pipeline",
135 "The default pipeline lowers main dialects (arith, memref, scf, vector, "
136 "gpu) to ROCDL. It starts by lowering GPU code to the specified "
137 "compilation target (default is fatbin) then lowers the host code.",
static llvm::ManagedStatic< PassManagerOptions > options
This class represents a pass manager that runs passes on either a specific operation type,...
void addPass(std::unique_ptr< Pass > pass)
Add the given pass to this pass manager.
void addNestedPass(std::unique_ptr< Pass > pass)
Add the given pass to a nested pass manager for the given operation kind OpT.
StringRef resolveArchOption(StringRef arch, StringRef deprecatedAlias)
Returns the target architecture that a pass should parse, given its arch option and the value of the ...
void registerGPUToROCDLPipeline()
void buildLowerToROCDLPassPipeline(OpPassManager &pm, const GPUToROCDLPipelineOptions &options)
Adds the GPU to ROCDL pipeline to the given pass manager.
std::unique_ptr<::mlir::Pass > createExpandStridedMetadataPass()
Include the generated interface declarations.
std::unique_ptr<::mlir::Pass > createSCFToControlFlowPass()
std::unique_ptr<::mlir::Pass > createConvertMathToLLVMPass()
std::unique_ptr<::mlir::Pass > createConvertFuncToLLVMPass()
std::unique_ptr<::mlir::Pass > createConvertIndexToLLVMPass()
std::unique_ptr<::mlir::Pass > createReconcileUnrealizedCastsPass()
std::unique_ptr<::mlir::Pass > createArithToLLVMConversionPass()
std::unique_ptr<::mlir::Pass > createCanonicalizerPass()
std::unique_ptr<::mlir::Pass > createLowerAffinePass()
std::unique_ptr<::mlir::Pass > createGpuROCDLAttachTarget()
std::unique_ptr<::mlir::Pass > createConvertGpuOpsToROCDLOps()
std::unique_ptr<::mlir::Pass > createConvertAMDGPUToROCDLPass()
std::unique_ptr<::mlir::Pass > createGpuToLLVMConversionPass()
std::unique_ptr<::mlir::Pass > createGpuModuleToBinaryPass()
std::unique_ptr< Pass > createConvertVectorToSCFPass(const VectorTransferToSCFOptions &options=VectorTransferToSCFOptions())
Create a pass to convert a subset of vector ops to SCF.
std::unique_ptr<::mlir::Pass > createCSEPass()
std::unique_ptr<::mlir::Pass > createGpuKernelOutliningPass()
::mlir::gpu::amd::Runtime runtime
std::string compilationTarget
bool kernelBarePtrCallConv
PassPipelineRegistration provides a global initializer that registers a Pass pipeline builder routine...
Options for the gpu to rocdl pipeline.