#ifndef TRITON_THIRD_PARTY_AMD_INCLUDE_TRITONAMDGPUTRANSFORMS_PASSES_H_ #define TRITON_THIRD_PARTY_AMD_INCLUDE_TRITONAMDGPUTRANSFORMS_PASSES_H_ #include "mlir/Dialect/LLVMIR/ROCDLDialect.h" #include "mlir/Pass/Pass.h" #include "third_party/amd/include/Dialect/TritonAMDGPU/IR/Dialect.h" #include "triton/Dialect/TritonNvidiaGPU/IR/Dialect.h" namespace mlir { std::unique_ptr createTritonAMDGPUStreamPipelinePass(int numStages = 2, int globalPrefetch = 0, int localPrefetch = 0, bool useAsyncCopy = false); std::unique_ptr createTritonAMDGPUAccelerateMatmulPass(std::string archGenName = std::string(), int matrixInstructionSize = 0, int kpack = 1); std::unique_ptr createTritonAMDGPUCanonicalizeLoopsPass(); std::unique_ptr createTritonAMDGPUReorderInstructionsPass(); std::unique_ptr createTritonAMDGPUVerifier(); std::unique_ptr createTritonAMDGPUOptimizeEpiloguePass(); std::unique_ptr createTritonAMDGPUHoistLayoutConversionsPass(); std::unique_ptr createTritonAMDGPUCanonicalizePointersPass(); std::unique_ptr createTritonAMDGPUConvertToBufferOpsPass( std::string archGenName = std::string()); std::unique_ptr createTritonAMDGPUBlockPingpongPass(int32_t numStages = 2); std::unique_ptr createTritonAMDGPUInThreadTransposePass(); std::unique_ptr createTritonAMDGPUCoalesceAsyncCopyPass(std::string archGenName = {}); std::unique_ptr createTritonAMDGPUUpdateAsyncWaitCountPass(std::string archGenName = {}); std::unique_ptr createTritonAMDGPUFoldTrueCmpIPass(); /// Generate the code for registering passes. #define GEN_PASS_REGISTRATION #include "TritonAMDGPUTransforms/Passes.h.inc" } // namespace mlir #endif // TRITON_THIRD_PARTY_AMD_INCLUDE_TRITONAMDGPUTRANSFORMS_PASSES_H_