[flang-commits] [flang] [MLIR][OpenMP] Add Lowering support for implicitly linking to default declare mappers (PR #131006)
Akash Banerjee via flang-commits
flang-commits at lists.llvm.org
Thu Mar 13 07:21:10 PDT 2025
================
@@ -2234,6 +2234,16 @@ genTargetOp(lower::AbstractConverter &converter, lower::SymMap &symTable,
fir::ExtendedValue dataExv = converter.getSymbolExtendedValue(sym);
name << sym.name().ToString();
+ mlir::FlatSymbolRefAttr mapperId;
+ if (sym.GetType()->category() == semantics::DeclTypeSpec::TypeDerived) {
+ auto &typeSpec = sym.GetType()->derivedTypeSpec();
+ std::string mapperIdName = typeSpec.name().ToString() + ".default";
+ mapperIdName = converter.mangleName(mapperIdName, *typeSpec.GetScope());
+ if (converter.getModuleOp().lookupSymbol(mapperIdName))
+ mapperId = mlir::FlatSymbolRefAttr::get(&converter.getMLIRContext(),
+ mapperIdName);
+ }
----------------
TIFitis wrote:
This change is for catching the implicit use of a derived type member inside a target region without it appearing in a map clause.
Eg:
```
!$omp target
x%num = 10
!$omp end target
```
The last sub-test in the new test added checks for this.
https://github.com/llvm/llvm-project/pull/131006
More information about the flang-commits
mailing list