[llvm-branch-commits] [flang] [llvm] [mlir] [Flang][OpenMP][MLIR] Initial declare target to for variables implementation (PR #119589)
Sergio Afonso via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Aug 11 07:37:14 PDT 2025
================
@@ -5150,11 +5213,17 @@ handleDeclareTargetMapVar(MapInfoData &mapData,
for (llvm::User *user : userVec) {
if (auto *insn = dyn_cast<llvm::Instruction>(user)) {
if (insn->getFunction() == func) {
- builder.SetCurrentDebugLocation(insn->getDebugLoc());
- auto *load = builder.CreateLoad(mapData.BasePointers[i]->getType(),
- mapData.BasePointers[i]);
- load->moveBefore(insn->getIterator());
- user->replaceUsesOfWith(mapData.OriginalValue[i], load);
+ auto mapOp = cast<omp::MapInfoOp>(mapData.MapClause[i]);
+ llvm::Value *substitute = mapData.BasePointers[i];
+ if (isDeclareTargetLink(mapOp.getVarPtrPtr() ? mapOp.getVarPtrPtr()
+ : mapOp.getVarPtr())) {
+ builder.SetCurrentDebugLocation(insn->getDebugLoc());
+ auto *load = builder.CreateLoad(
+ mapData.BasePointers[i]->getType(), mapData.BasePointers[i]);
+ load->moveBefore(insn);
+ substitute = load;
----------------
skatrak wrote:
```suggestion
substitute = builder.CreateLoad(
mapData.BasePointers[i]->getType(), mapData.BasePointers[i]);
substitute->moveBefore(insn);
```
https://github.com/llvm/llvm-project/pull/119589
More information about the llvm-branch-commits
mailing list