aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp')
-rw-r--r--mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
index 60a47a9d7bef..67921aec9b47 100644
--- a/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
+++ b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
@@ -798,3 +798,22 @@ std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
mlir::createGpuToLLVMConversionPass() {
return std::make_unique<GpuToLLVMConversionPass>();
}
+
+void mlir::populateGpuToLLVMConversionPatterns(
+ LLVMTypeConverter &converter, OwningRewritePatternList &patterns) {
+ auto gpuBinaryAnnotation = gpu::getDefaultGpuBinaryAnnotation();
+ converter.addConversion(
+ [context = &converter.getContext()](gpu::AsyncTokenType type) -> Type {
+ return LLVM::LLVMPointerType::get(IntegerType::get(context, 8));
+ });
+ patterns.add<ConvertAllocOpToGpuRuntimeCallPattern,
+ ConvertDeallocOpToGpuRuntimeCallPattern,
+ ConvertHostRegisterOpToGpuRuntimeCallPattern,
+ ConvertMemcpyOpToGpuRuntimeCallPattern,
+ ConvertWaitAsyncOpToGpuRuntimeCallPattern,
+ ConvertWaitOpToGpuRuntimeCallPattern,
+ ConvertAsyncYieldToGpuRuntimeCallPattern>(converter);
+ patterns.add<ConvertLaunchFuncOpToGpuRuntimeCallPattern>(converter,
+ gpuBinaryAnnotation);
+ patterns.add<EraseGpuModuleOpPattern>(&converter.getContext());
+}