[Mlir-commits] [mlir] [MLIR][OpenMP] Fix the assertion failure for VariableCaptureKind::ByCopy (PR #72424)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Nov 15 10:26:12 PST 2023
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Akash Banerjee (TIFitis)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/72424.diff
1 Files Affected:
- (modified) mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp (+3-16)
``````````diff
diff --git a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
index ae13a745196c42d..c1bc9d42bed75e6 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
@@ -2202,16 +2202,11 @@ createDeviceArgumentAccessor(MapInfoData &mapData, llvm::Argument &arg,
ompBuilder.M.getDataLayout().getProgramAddressSpace();
// Create the alloca for the argument the current point.
- llvm::Value *v =
- builder.CreateAlloca(arg.getType()->isPointerTy()
- ? arg.getType()
- : llvm::Type::getInt64Ty(builder.getContext()),
- ompBuilder.M.getDataLayout().getAllocaAddrSpace());
+ llvm::Value *v = builder.CreateAlloca(arg.getType(), allocaAS);
- if (allocaAS != defaultAS && arg.getType()->isPointerTy()) {
+ if (allocaAS != defaultAS && arg.getType()->isPointerTy())
v = builder.CreatePointerBitCastOrAddrSpaceCast(
v, arg.getType()->getPointerTo(defaultAS));
- }
builder.CreateStore(&arg, v);
@@ -2219,15 +2214,7 @@ createDeviceArgumentAccessor(MapInfoData &mapData, llvm::Argument &arg,
switch (capture) {
case mlir::omp::VariableCaptureKind::ByCopy: {
- // RHS of || aims to ignore conversions like int -> uint, but further
- // extension of this path must be implemented for the moment it'll fall
- // through to the assert.
- if (inputType->isPointerTy() || v->getType() == inputType->getPointerTo()) {
- retVal = v;
- return builder.saveIP();
- }
-
- assert(false && "Currently unsupported OMPTargetVarCaptureByCopy Type");
+ retVal = v;
break;
}
case mlir::omp::VariableCaptureKind::ByRef: {
``````````
</details>
https://github.com/llvm/llvm-project/pull/72424
More information about the Mlir-commits
mailing list