[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)
Sergio Afonso via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Aug 12 08:42:17 PDT 2024
================
@@ -216,31 +215,50 @@ bool ClauseProcessor::processMotionClauses(lower::StatementContext &stmtCtx,
if (origSymbol && fir::isTypeWithDescriptor(origSymbol.getType()))
symAddr = origSymbol;
+ if (object.sym()->owner().IsDerivedType()) {
+ omp::ObjectList objectList = gatherObjects(object, semaCtx);
+ parentObj = objectList[0];
+ parentMemberIndices.insert({parentObj.value(), {}});
+ if (Fortran::semantics::IsAllocatableOrObjectPointer(
+ object.sym()) ||
+ memberHasAllocatableParent(object, semaCtx)) {
+ llvm::SmallVector<int> indices =
+ generateMemberPlacementIndices(object, semaCtx);
+ symAddr = createParentSymAndGenIntermediateMaps(
+ clauseLocation, converter, objectList, indices,
+ parentMemberIndices[parentObj.value()], asFortran.str(),
+ mapTypeBits);
+ }
+ }
+
----------------
skatrak wrote:
I think PR #101703 is already doing some of this refactoring, just so you're aware @agozillon.
https://github.com/llvm/llvm-project/pull/96266
More information about the llvm-branch-commits
mailing list