llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-mlir-gpu Author: None (github-actions[bot]) <details> <summary>Changes</summary> resolves llvm/llvm-project#<!-- -->79600 --- Full diff: https://github.com/llvm/llvm-project/pull/79603.diff 3 Files Affected: - (modified) mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp (+2-1) - (modified) mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp (+5-4) - (modified) mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp (+5-4) ``````````diff diff --git a/mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp b/mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp index ae2bd8e5b5405d..73d418cb841327 100644 --- a/mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp +++ b/mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp @@ -529,7 +529,8 @@ LogicalResult GPUPrintfOpToVPrintfLowering::matchAndRewrite( /*alignment=*/0); for (auto [index, arg] : llvm::enumerate(args)) { Value ptr = rewriter.create<LLVM::GEPOp>( - loc, ptrType, structType, tempAlloc, ArrayRef<LLVM::GEPArg>{0, index}); + loc, ptrType, structType, tempAlloc, + ArrayRef<LLVM::GEPArg>{0, static_cast<int32_t>(index)}); rewriter.create<LLVM::StoreOp>(loc, arg, ptr); } std::array<Value, 2> printfArgs = {stringStart, tempAlloc}; diff --git a/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp index f853d5c47b623c..78d4e806246872 100644 --- a/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp +++ b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp @@ -1041,13 +1041,14 @@ Value ConvertLaunchFuncOpToGpuRuntimeCallPattern::generateParamsArray( auto arrayPtr = builder.create<LLVM::AllocaOp>( loc, llvmPointerType, llvmPointerType, arraySize, /*alignment=*/0); for (const auto &en : llvm::enumerate(arguments)) { + const auto index = static_cast<int32_t>(en.index()); Value fieldPtr = builder.create<LLVM::GEPOp>(loc, llvmPointerType, structType, structPtr, - ArrayRef<LLVM::GEPArg>{0, en.index()}); + ArrayRef<LLVM::GEPArg>{0, index}); builder.create<LLVM::StoreOp>(loc, en.value(), fieldPtr); - auto elementPtr = builder.create<LLVM::GEPOp>( - loc, llvmPointerType, llvmPointerType, arrayPtr, - ArrayRef<LLVM::GEPArg>{en.index()}); + auto elementPtr = + builder.create<LLVM::GEPOp>(loc, llvmPointerType, llvmPointerType, + arrayPtr, ArrayRef<LLVM::GEPArg>{index}); builder.create<LLVM::StoreOp>(loc, fieldPtr, elementPtr); } return arrayPtr; diff --git a/mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp b/mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp index 72f9295749a66b..b25c831bc7172a 100644 --- a/mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp +++ b/mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp @@ -488,7 +488,8 @@ static void splitVectorStore(const DataLayout &dataLayout, Location loc, // Other patterns will turn this into a type-consistent GEP. auto gepOp = rewriter.create<GEPOp>( loc, address.getType(), rewriter.getI8Type(), address, - ArrayRef<GEPArg>{storeOffset + index * elementSize}); + ArrayRef<GEPArg>{ + static_cast<int32_t>(storeOffset + index * elementSize)}); rewriter.create<StoreOp>(loc, extractOp, gepOp); } @@ -524,9 +525,9 @@ static void splitIntegerStore(const DataLayout &dataLayout, Location loc, // We create an `i8` indexed GEP here as that is the easiest (offset is // already known). Other patterns turn this into a type-consistent GEP. - auto gepOp = - rewriter.create<GEPOp>(loc, address.getType(), rewriter.getI8Type(), - address, ArrayRef<GEPArg>{currentOffset}); + auto gepOp = rewriter.create<GEPOp>( + loc, address.getType(), rewriter.getI8Type(), address, + ArrayRef<GEPArg>{static_cast<int32_t>(currentOffset)}); rewriter.create<StoreOp>(loc, valueToStore, gepOp); // No need to care about padding here since we already checked previously `````````` </details> https://github.com/llvm/llvm-project/pull/79603 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits