diff options
author | cr-kai.ma <kai.ma@corerain.com> | 2021-03-24 12:55:24 +0000 |
---|---|---|
committer | cr-kai.ma <kai.ma@corerain.com> | 2021-03-24 12:55:24 +0000 |
commit | e8b5927cdcde7304e40eb4e61fb17bed88df77a4 (patch) | |
tree | 8ba0d3a62ccc65b2339de57f368225aec12edadf | |
parent | [mlir][OpAsmFormat] Add support for an "else" group on optional elements (diff) | |
download | llvm-project-e8b5927cdcde7304e40eb4e61fb17bed88df77a4.tar.gz llvm-project-e8b5927cdcde7304e40eb4e61fb17bed88df77a4.tar.bz2 llvm-project-e8b5927cdcde7304e40eb4e61fb17bed88df77a4.zip |
不知道为啥在最新的master分支上删掉了一个必要的函数,先加上然后等两周后同步看看改动再说
-rw-r--r-- | mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h | 3 | ||||
-rw-r--r-- | mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp | 19 |
2 files changed, 22 insertions, 0 deletions
diff --git a/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h b/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h index 708a3fe0b23e..42d06f301ad5 100644 --- a/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h +++ b/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h @@ -52,6 +52,9 @@ using LoweringCallback = std::function<std::unique_ptr<llvm::Module>( /// typed ABI on top of GPU runtimes such as CUDA or ROCm (HIP). std::unique_ptr<OperationPass<ModuleOp>> createGpuToLLVMConversionPass(); +void populateGpuToLLVMConversionPatterns(LLVMTypeConverter &converter, + OwningRewritePatternList &patterns); + } // namespace mlir #endif // MLIR_CONVERSION_GPUCOMMON_GPUCOMMONPASS_H_ diff --git a/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp index 81c939875953..e5adf778e098 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()); +} |