[Mlir-commits] [mlir] [OpenMP][Flang] Add "IsolatedFromAbove" trait to omp.target (PR #67164)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Oct 2 10:07:08 PDT 2023
================
@@ -2433,10 +2502,44 @@ genTargetOp(Fortran::lower::AbstractConverter &converter,
Fortran::parser::OmpClause::Defaultmap>(
currentLocation, llvm::omp::Directive::OMPD_target);
- return genOpWithBody<mlir::omp::TargetOp>(
- converter, eval, currentLocation, outerCombined, &clauseList,
- ifClauseOperand, deviceOperand, threadLimitOperand, nowaitAttr,
- mapOperands);
+ auto captureImplicitMap = [&](const Fortran::semantics::Symbol &sym) {
+ if (llvm::find(mapSymbols, &sym) == mapSymbols.end()) {
+ mlir::Value baseOp = converter.getSymbolAddress(sym);
+ if (!baseOp)
+ if (const auto *details = sym.template detailsIf<
+ Fortran::semantics::HostAssocDetails>()) {
+ baseOp = converter.getSymbolAddress(details->symbol());
+ converter.copySymbolBinding(details->symbol(), sym);
+ }
+
----------------
jeanPerier wrote:
You can check here what properties are not constant an pass them too or pass something with more info. With HLFIR, you could also pass the "entity", i.e., the first result of the hlfir.declare: it contains all the required info to work with the symbol (but there is no tool exposed in the bridge to do that, but when we move to HLFIR only, I see no problem adding it).
https://github.com/llvm/llvm-project/pull/67164
More information about the Mlir-commits
mailing list