diff --git a/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h b/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h --- a/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h +++ b/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h @@ -43,23 +43,14 @@ using LoweringCallback = std::function( Operation *, llvm::LLVMContext &, StringRef)>; -/// Creates a pass to convert a gpu.launch_func operation into a sequence of -/// GPU runtime calls. +/// Creates a pass to convert a GPU operations into a sequence of GPU runtime +/// calls. /// /// This pass does not generate code to call GPU runtime APIs directly but /// instead uses a small wrapper library that exports a stable and conveniently /// typed ABI on top of GPU runtimes such as CUDA or ROCm (HIP). -/// -/// A non-empty gpuBinaryAnnotation overrides the pass' command line option. -std::unique_ptr> -createGpuToLLVMConversionPass(StringRef gpuBinaryAnnotation = {}); +std::unique_ptr> createGpuToLLVMConversionPass(); -/// Collect a set of patterns to convert from the GPU dialect to LLVM. -/// -/// A non-empty gpuBinaryAnnotation overrides the pass' command line option. -void populateGpuToLLVMConversionPatterns(LLVMTypeConverter &converter, - OwningRewritePatternList &patterns, - StringRef gpuBinaryAnnotation = {}); } // namespace mlir #endif // MLIR_CONVERSION_GPUCOMMON_GPUCOMMONPASS_H_ diff --git a/mlir/lib/Conversion/GPUCommon/CMakeLists.txt b/mlir/lib/Conversion/GPUCommon/CMakeLists.txt --- a/mlir/lib/Conversion/GPUCommon/CMakeLists.txt +++ b/mlir/lib/Conversion/GPUCommon/CMakeLists.txt @@ -15,7 +15,7 @@ endif() add_mlir_conversion_library(MLIRGPUToGPURuntimeTransforms - ConvertLaunchFuncToRuntimeCalls.cpp + GPUToLLVMConversion.cpp GPUOpsLowering.cpp DEPENDS diff --git a/mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp rename from mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp rename to mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp --- a/mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp +++ b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp @@ -41,10 +41,7 @@ class GpuToLLVMConversionPass : public GpuToLLVMConversionPassBase { public: - GpuToLLVMConversionPass(StringRef gpuBinaryAnnotation) { - if (!gpuBinaryAnnotation.empty()) - this->gpuBinaryAnnotation = gpuBinaryAnnotation.str(); - } + GpuToLLVMConversionPass() = default; GpuToLLVMConversionPass(const GpuToLLVMConversionPass &other) : GpuToLLVMConversionPassBase(other) {} @@ -318,7 +315,21 @@ populateStdToLLVMConversionPatterns(converter, patterns); populateAsyncStructuralTypeConversionsAndLegality(&getContext(), converter, patterns, target); - populateGpuToLLVMConversionPatterns(converter, patterns, gpuBinaryAnnotation); + + converter.addConversion( + [context = &converter.getContext()](gpu::AsyncTokenType type) -> Type { + return LLVM::LLVMPointerType::get(IntegerType::get(context, 8)); + }); + patterns.insert(converter); + patterns.insert( + converter, gpuBinaryAnnotation); + patterns.insert(&converter.getContext()); if (failed( applyPartialConversion(getOperation(), target, std::move(patterns)))) @@ -784,25 +795,6 @@ } std::unique_ptr> -mlir::createGpuToLLVMConversionPass(StringRef gpuBinaryAnnotation) { - return std::make_unique(gpuBinaryAnnotation); -} - -void mlir::populateGpuToLLVMConversionPatterns( - LLVMTypeConverter &converter, OwningRewritePatternList &patterns, - StringRef gpuBinaryAnnotation) { - converter.addConversion( - [context = &converter.getContext()](gpu::AsyncTokenType type) -> Type { - return LLVM::LLVMPointerType::get(IntegerType::get(context, 8)); - }); - patterns.insert(converter); - patterns.insert( - converter, gpuBinaryAnnotation); - patterns.insert(&converter.getContext()); +mlir::createGpuToLLVMConversionPass() { + return std::make_unique(); }