[flang-commits] [flang] [llvm] [mlir] [flang][mlir][OpenMP] Report Fortran names for privatized target maps (PR #228195)

Abid Qadeer via flang-commits flang-commits at lists.llvm.org
Fri Oct 2 03:02:36 PDT 2026


================
@@ -30,15 +30,18 @@ llvm::Constant *mlir::LLVM::createSourceLocStrFromLocation(
   return builder.getOrCreateSrcLocStr(locStr, strLen);
 }
 
-llvm::Constant *
-mlir::LLVM::createMappingInformation(Location loc,
-                                     llvm::OpenMPIRBuilder &builder) {
+llvm::Constant *mlir::LLVM::createMappingInformation(
+    Location loc, llvm::OpenMPIRBuilder &builder, StringRef mapName) {
   uint32_t strLen;
+  Location childLoc = loc;
+  StringRef name = mapName;
   if (auto nameLoc = dyn_cast<NameLoc>(loc)) {
-    StringRef name = nameLoc.getName();
-    return createSourceLocStrFromLocation(nameLoc.getChildLoc(), builder, name,
-                                          strLen, /*forOffloadMap=*/true);
+    childLoc = nameLoc.getChildLoc();
+    if (name.empty())
+      name = nameLoc.getName();
   }
-  return createSourceLocStrFromLocation(loc, builder, "unknown", strLen,
+  if (name.empty())
+    name = "unknown";
+  return createSourceLocStrFromLocation(childLoc, builder, name, strLen,
----------------
abidh wrote:

The mlir changes require an mlir level test. Something like

```
// CHECK: c";x;test.f90;3;5;;\00"
llvm.func @map_name_attr(%a : !llvm.ptr) {
  %m = omp.map.info var_ptr(%a : !llvm.ptr, i32) map_clauses(tofrom) capture(ByRef) name("x") -> !llvm.ptr loc("test.f90":3:5)
  omp.target_data map_entries(%m : !llvm.ptr) { omp.terminator }
  llvm.return
}
```

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


More information about the flang-commits mailing list