[Mlir-commits] [mlir] [mlir][OpenMP] - MLIR to LLVMIR translation support for delayed privatization in `omp.target` ops. (PR #109668)
Christian Ulmann
llvmlistbot at llvm.org
Mon Sep 23 12:56:36 PDT 2024
================
@@ -3435,6 +3447,58 @@ convertOmpTarget(Operation &opInst, llvm::IRBuilderBase &builder,
const auto &arg = targetRegion.front().getArgument(argIndex);
moduleTranslation.mapValue(arg, mapOpValue);
}
+
+ // Do privatization after moduleTranslation has already recorded
+ // mapped values.
+ if (!targetOp.getPrivateVars().empty()) {
+ auto oldIP = builder.saveIP();
+ builder.restoreIP(allocaIP);
+
+ OperandRange privateVars = targetOp.getPrivateVars();
+ std::optional<ArrayAttr> privateSyms = targetOp.getPrivateSyms();
+ unsigned numMapVars = targetOp.getMapVars().size();
+ Block &firstTargetBlock = targetRegion.front();
+ auto *blockArgsStart = firstTargetBlock.getArguments().begin();
----------------
Dinistro wrote:
Do only use `auto` when the type is given on the RHS or is too complex.
https://github.com/llvm/llvm-project/pull/109668
More information about the Mlir-commits
mailing list