43void buildPreGPUCommonPassPipeline(
70 if (
options.xegpuOpLevel ==
"workgroup") {
86 if (
options.xegpuOpLevel ==
"subgroup" ||
87 options.xegpuOpLevel ==
"workgroup") {
133 options.mathExtendExtraTypes.end());
141 options.unsupportedSourceTypes.begin(),
142 options.unsupportedSourceTypes.end());
154void buildPostGPUCommonPassPipeline(
186 buildPreGPUCommonPassPipeline(pm,
options);
189 buildGPUPassPipeline(pm,
options);
192 buildPostGPUCommonPassPipeline(pm,
options);
197 "gpu-lower-to-xevm-pipeline",
198 "The default GPU to XeVM lowering pipeline. It starts by lowering GPU "
200 "specified compilation target (default is fatbin) then lowers the host "
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.
std::unique_ptr<::mlir::Pass > createArithEmulateUnsupportedFloats()
std::unique_ptr<::mlir::Pass > createArithExpandOpsPass()
void registerGPUToXeVMPipeline()
void buildLowerToXeVMPassPipeline(OpPassManager &pm, const GPUToXeVMPipelineOptions &options)
Adds the GPU to XeVM pipeline to the given pass manager.
std::unique_ptr<::mlir::Pass > createMathExtendToSupportedTypes()
std::unique_ptr<::mlir::Pass > createExpandStridedMetadataPass()
std::unique_ptr<::mlir::Pass > createXeGPUWgToSgDistribute()
std::unique_ptr<::mlir::Pass > createXeGPUVectorLinearize()
std::unique_ptr<::mlir::Pass > createXeGPUSgToLaneDistribute()
std::unique_ptr<::mlir::Pass > createXeGPUPeepHoleOptimizer()
std::unique_ptr<::mlir::Pass > createXeGPUBlocking()
std::unique_ptr<::mlir::Pass > createXeGPUPropagateLayout()
Include the generated interface declarations.
std::unique_ptr<::mlir::Pass > createConvertToLLVMPass()
std::unique_ptr<::mlir::Pass > createSCFToControlFlowPass()
std::unique_ptr<::mlir::Pass > createConvertGpuOpsToLLVMSPVOps()
std::unique_ptr<::mlir::Pass > createReconcileUnrealizedCastsPass()
std::unique_ptr<::mlir::Pass > createConvertVectorToLLVMPass()
std::unique_ptr<::mlir::Pass > createGpuAsyncRegionPass()
std::unique_ptr<::mlir::Pass > createCanonicalizerPass()
std::unique_ptr<::mlir::Pass > createConvertXeGPUToXeVMPass()
std::unique_ptr<::mlir::Pass > createLowerAffinePass()
std::unique_ptr<::mlir::Pass > createGpuXeVMAttachTarget()
std::unique_ptr<::mlir::Pass > createConvertMathToXeVM()
std::unique_ptr<::mlir::Pass > createLoopInvariantCodeMotionPass()
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 > createConvertXeVMToLLVMPass()
std::unique_ptr<::mlir::Pass > createCSEPass()
std::string compilationTarget
bool kernelBarePtrCallConv
std::string moduleMatcher
PassPipelineRegistration provides a global initializer that registers a Pass pipeline builder routine...
std::string targetTypeStr
::llvm::SmallVector< std::string > sourceTypeStrs
std::string targetTypeStr
::llvm::SmallVector< std::string > extraTypeStrs