Skip to content

Commit 447f522

Browse files
committed
add converter for transform dialect
1 parent 29ef475 commit 447f522

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.h"
1010

1111
#include "mlir/Analysis/SliceAnalysis.h"
12+
#include "mlir/Conversion/GPUCommon/GPUCommonPass.h"
1213
#include "mlir/Conversion/LLVMCommon/TypeConverter.h"
1314
#include "mlir/Conversion/NVGPUToNVVM/NVGPUToNVVM.h"
1415
#include "mlir/Dialect/Affine/IR/AffineOps.h"
@@ -51,6 +52,21 @@ void transform::ApplyNVGPUToNVVMConversionPatternsOp::populatePatterns(
5152
/// device-side async tokens cannot be materialized in nvvm. We just
5253
/// convert them to a dummy i32 type in order to easily drop them during
5354
/// conversion.
55+
populateGpuMemorySpaceAttributeConversions(
56+
llvmTypeConverter, [](gpu::AddressSpace space) -> unsigned {
57+
switch (space) {
58+
case gpu::AddressSpace::Global:
59+
return static_cast<unsigned>(
60+
NVVM::NVVMMemorySpace::kGlobalMemorySpace);
61+
case gpu::AddressSpace::Workgroup:
62+
return static_cast<unsigned>(
63+
NVVM::NVVMMemorySpace::kSharedMemorySpace);
64+
case gpu::AddressSpace::Private:
65+
return 0;
66+
}
67+
llvm_unreachable("unknown address space enum value");
68+
return 0;
69+
});
5470
llvmTypeConverter.addConversion(
5571
[&](nvgpu::DeviceAsyncTokenType type) -> Type {
5672
return llvmTypeConverter.convertType(

0 commit comments

Comments
 (0)