|
13 | 13 | #include "mlir/Conversion/GPUToNVVM/GPUToNVVMPass.h" |
14 | 14 | #include "mlir/Conversion/GPUToROCDL/GPUToROCDLPass.h" |
15 | 15 | #include "mlir/Conversion/LLVMCommon/TypeConverter.h" |
| 16 | +#include "mlir/Conversion/NVGPUToNVVM/NVGPUToNVVM.h" |
16 | 17 | #include "mlir/Dialect/AMDGPU/IR/AMDGPUDialect.h" |
17 | 18 | #include "mlir/Dialect/AMDGPU/Utils/Chipset.h" |
18 | 19 | #include "mlir/Dialect/Arith/IR/Arith.h" |
@@ -62,25 +63,7 @@ using namespace mlir::transform::gpu; |
62 | 63 | void transform::ApplyGPUToNVVMConversionPatternsOp::populatePatterns( |
63 | 64 | TypeConverter &typeConverter, RewritePatternSet &patterns) { |
64 | 65 | auto &llvmTypeConverter = static_cast<LLVMTypeConverter &>(typeConverter); |
65 | | - // NVVM uses alloca in the default address space to represent private |
66 | | - // memory allocations, so drop private annotations. NVVM uses address |
67 | | - // space 3 for shared memory. NVVM uses the default address space to |
68 | | - // represent global memory. |
69 | | - // Used in populateGpuToNVVMConversionPatternsso attaching here for now. |
70 | | - // TODO: We should have a single to_nvvm_type_converter. |
71 | | - populateGpuMemorySpaceAttributeConversions( |
72 | | - llvmTypeConverter, [](AddressSpace space) -> unsigned { |
73 | | - switch (space) { |
74 | | - case AddressSpace::Global: |
75 | | - return static_cast<unsigned>(NVVM::NVVMMemorySpace::Global); |
76 | | - case AddressSpace::Workgroup: |
77 | | - return static_cast<unsigned>(NVVM::NVVMMemorySpace::Shared); |
78 | | - case AddressSpace::Private: |
79 | | - return 0; |
80 | | - } |
81 | | - llvm_unreachable("unknown address space enum value"); |
82 | | - return static_cast<unsigned>(NVVM::NVVMMemorySpace::Generic); |
83 | | - }); |
| 66 | + nvgpu::populateCommonGPUTypeAndAttributeConversions(llvmTypeConverter); |
84 | 67 | // Used in GPUToNVVM/WmmaOpsToNvvm.cpp so attaching here for now. |
85 | 68 | // TODO: We should have a single to_nvvm_type_converter. |
86 | 69 | llvmTypeConverter.addConversion( |
@@ -129,7 +112,7 @@ LogicalResult transform::ApplyGPUSubgroupReduceToNVVMConversionPatternsOp:: |
129 | 112 | void transform::ApplyGPUToROCDLConversionPatternsOp::populatePatterns( |
130 | 113 | TypeConverter &typeConverter, RewritePatternSet &patterns) { |
131 | 114 | auto &llvmTypeConverter = static_cast<LLVMTypeConverter &>(typeConverter); |
132 | | - populateCommonAMDGPUTypeAndAttributeConversions(llvmTypeConverter); |
| 115 | + amdgpu::populateCommonGPUTypeAndAttributeConversions(llvmTypeConverter); |
133 | 116 | FailureOr<amdgpu::Chipset> maybeChipset = |
134 | 117 | amdgpu::Chipset::parse(getChipset()); |
135 | 118 | assert(llvm::succeeded(maybeChipset) && "expected valid chipset"); |
|
0 commit comments