@@ -312,16 +312,15 @@ struct GPUShuffleConversion final : ConvertOpToLLVMPattern<gpu::ShuffleOp> {
312
312
313
313
class MemorySpaceToOpenCLMemorySpaceConverter final : public TypeConverter {
314
314
public:
315
- MemorySpaceToOpenCLMemorySpaceConverter () {
315
+ MemorySpaceToOpenCLMemorySpaceConverter (MLIRContext *ctx ) {
316
316
addConversion ([](Type t) { return t; });
317
- addConversion ([](BaseMemRefType memRefType) -> std::optional<Type> {
317
+ addConversion ([ctx ](BaseMemRefType memRefType) -> std::optional<Type> {
318
318
// Attach global addr space attribute to memrefs with no addr space attr
319
319
Attribute memSpaceAttr = memRefType.getMemorySpace ();
320
320
if (memSpaceAttr)
321
321
return std::nullopt;
322
322
323
- auto addrSpaceAttr = gpu::AddressSpaceAttr::get (
324
- memRefType.getContext (), gpu::AddressSpace::Global);
323
+ Attribute addrSpaceAttr = IntegerAttr::get (IntegerType::get (ctx, 64 ), 1 );
325
324
if (auto rankedType = dyn_cast<MemRefType>(memRefType)) {
326
325
return MemRefType::get (memRefType.getShape (),
327
326
memRefType.getElementType (),
@@ -361,7 +360,7 @@ struct GPUToLLVMSPVConversionPass final
361
360
362
361
// Force OpenCL address spaces when they are not present
363
362
{
364
- MemorySpaceToOpenCLMemorySpaceConverter converter;
363
+ MemorySpaceToOpenCLMemorySpaceConverter converter (context) ;
365
364
AttrTypeReplacer replacer;
366
365
replacer.addReplacement ([&converter](BaseMemRefType origType)
367
366
-> std::optional<BaseMemRefType> {
@@ -379,8 +378,6 @@ struct GPUToLLVMSPVConversionPass final
379
378
gpu::ReturnOp, gpu::ShuffleOp, gpu::ThreadIdOp>();
380
379
381
380
populateGpuToLLVMSPVConversionPatterns (converter, patterns);
382
- populateFuncToLLVMConversionPatterns (converter, patterns);
383
- populateFinalizeMemRefToLLVMConversionPatterns (converter, patterns);
384
381
populateGpuMemorySpaceAttributeConversions (converter);
385
382
386
383
if (failed (applyPartialConversion (getOperation (), target,
0 commit comments