[Mlir-commits] [flang] [mlir] [flang][OpenACC] Fix implicit data mapping for deviceptr inside host_data (PR #192710)

Razvan Lupusoru llvmlistbot at llvm.org
Wed Apr 29 07:14:36 PDT 2026


================
@@ -311,9 +311,20 @@ Operation *ACCImplicitData::getOriginalDataClauseOpForAlias(
     if (auto *dataClauseOp = dataClause.getDefiningOp()) {
       // Only accept clauses that guarantee that the alias is present.
       if (isa<acc::CopyinOp, acc::CreateOp, acc::PresentOp, acc::NoCreateOp,
-              acc::DevicePtrOp>(dataClauseOp))
-        if (aliasAnalysis.alias(acc::getVar(dataClauseOp), var).isMust())
+              acc::DevicePtrOp>(dataClauseOp)) {
+        Value clauseVar = acc::getVar(dataClauseOp);
+        if (aliasAnalysis.alias(clauseVar, var).isMust())
           return dataClauseOp;
+        // For deviceptr clauses, also check if the clause variable is
+        // directly derived from 'var' (e.g., through a wrapping
+        // operation that produces the clause variable from 'var').
+        if (isa<acc::DevicePtrOp>(dataClauseOp)) {
+          for (Operation *user : var.getUsers()) {
----------------
razvanlupusoru wrote:

Why is it not sufficient?

https://github.com/llvm/llvm-project/pull/192710


More information about the Mlir-commits mailing list