@@ -464,7 +464,7 @@ void OrderedAssignmentRewriter::pre(hlfir::RegionAssignOp regionAssignOp) {
464464 // if the LHS is not).
465465 mlir::Value shape = hlfir::genShape (loc, builder, lhsEntity);
466466 elementalLoopNest = hlfir::genLoopNest (loc, builder, shape);
467- builder.setInsertionPointToStart (elementalLoopNest->innerLoop . getBody () );
467+ builder.setInsertionPointToStart (elementalLoopNest->body );
468468 lhsEntity = hlfir::getElementAt (loc, builder, lhsEntity,
469469 elementalLoopNest->oneBasedIndices );
470470 rhsEntity = hlfir::getElementAt (loc, builder, rhsEntity,
@@ -484,16 +484,15 @@ void OrderedAssignmentRewriter::pre(hlfir::RegionAssignOp regionAssignOp) {
484484 for (auto &cleanupConversion : argConversionCleanups)
485485 cleanupConversion ();
486486 if (elementalLoopNest)
487- builder.setInsertionPointAfter (elementalLoopNest->outerLoop );
487+ builder.setInsertionPointAfter (elementalLoopNest->outerOp );
488488 } else {
489489 // TODO: preserve allocatable assignment aspects for forall once
490490 // they are conveyed in hlfir.region_assign.
491491 builder.create <hlfir::AssignOp>(loc, rhsEntity, lhsEntity);
492492 }
493493 generateCleanupIfAny (loweredLhs.elementalCleanup );
494494 if (loweredLhs.vectorSubscriptLoopNest )
495- builder.setInsertionPointAfter (
496- loweredLhs.vectorSubscriptLoopNest ->outerLoop );
495+ builder.setInsertionPointAfter (loweredLhs.vectorSubscriptLoopNest ->outerOp );
497496 generateCleanupIfAny (oldRhsYield);
498497 generateCleanupIfAny (loweredLhs.nonElementalCleanup );
499498}
@@ -518,16 +517,16 @@ void OrderedAssignmentRewriter::pre(hlfir::WhereOp whereOp) {
518517 hlfir::Entity savedMask{maybeSaved->first };
519518 mlir::Value shape = hlfir::genShape (loc, builder, savedMask);
520519 whereLoopNest = hlfir::genLoopNest (loc, builder, shape);
521- constructStack.push_back (whereLoopNest->outerLoop . getOperation () );
522- builder.setInsertionPointToStart (whereLoopNest->innerLoop . getBody () );
520+ constructStack.push_back (whereLoopNest->outerOp );
521+ builder.setInsertionPointToStart (whereLoopNest->body );
523522 mlir::Value cdt = hlfir::getElementAt (loc, builder, savedMask,
524523 whereLoopNest->oneBasedIndices );
525524 generateMaskIfOp (cdt);
526525 if (maybeSaved->second ) {
527526 // If this is the same run as the one that saved the value, the clean-up
528527 // was left-over to be done now.
529528 auto insertionPoint = builder.saveInsertionPoint ();
530- builder.setInsertionPointAfter (whereLoopNest->outerLoop );
529+ builder.setInsertionPointAfter (whereLoopNest->outerOp );
531530 generateCleanupIfAny (maybeSaved->second );
532531 builder.restoreInsertionPoint (insertionPoint);
533532 }
@@ -539,8 +538,8 @@ void OrderedAssignmentRewriter::pre(hlfir::WhereOp whereOp) {
539538 mask.generateNoneElementalPart (builder, mapper);
540539 mlir::Value shape = mask.generateShape (builder, mapper);
541540 whereLoopNest = hlfir::genLoopNest (loc, builder, shape);
542- constructStack.push_back (whereLoopNest->outerLoop . getOperation () );
543- builder.setInsertionPointToStart (whereLoopNest->innerLoop . getBody () );
541+ constructStack.push_back (whereLoopNest->outerOp );
542+ builder.setInsertionPointToStart (whereLoopNest->body );
544543 mlir::Value cdt = generateMaskedEntity (mask);
545544 generateMaskIfOp (cdt);
546545 return ;
@@ -754,7 +753,7 @@ OrderedAssignmentRewriter::generateYieldedLHS(
754753 loweredLhs.vectorSubscriptLoopNest = hlfir::genLoopNest (
755754 loc, builder, loweredLhs.vectorSubscriptShape .value ());
756755 builder.setInsertionPointToStart (
757- loweredLhs.vectorSubscriptLoopNest ->innerLoop . getBody () );
756+ loweredLhs.vectorSubscriptLoopNest ->body );
758757 }
759758 loweredLhs.lhs = temp->second .fetch (loc, builder);
760759 return loweredLhs;
@@ -771,8 +770,7 @@ OrderedAssignmentRewriter::generateYieldedLHS(
771770 loweredLhs.vectorSubscriptLoopNest =
772771 hlfir::genLoopNest (loc, builder, *loweredLhs.vectorSubscriptShape ,
773772 !elementalAddrLhs.isOrdered ());
774- builder.setInsertionPointToStart (
775- loweredLhs.vectorSubscriptLoopNest ->innerLoop .getBody ());
773+ builder.setInsertionPointToStart (loweredLhs.vectorSubscriptLoopNest ->body );
776774 mapper.map (elementalAddrLhs.getIndices (),
777775 loweredLhs.vectorSubscriptLoopNest ->oneBasedIndices );
778776 for (auto &op : elementalAddrLhs.getBody ().front ().without_terminator ())
@@ -798,11 +796,11 @@ OrderedAssignmentRewriter::generateMaskedEntity(MaskedArrayExpr &maskedExpr) {
798796 if (!maskedExpr.noneElementalPartWasGenerated ) {
799797 // Generate none elemental part before the where loops (but inside the
800798 // current forall loops if any).
801- builder.setInsertionPoint (whereLoopNest->outerLoop );
799+ builder.setInsertionPoint (whereLoopNest->outerOp );
802800 maskedExpr.generateNoneElementalPart (builder, mapper);
803801 }
804802 // Generate the none elemental part cleanup after the where loops.
805- builder.setInsertionPointAfter (whereLoopNest->outerLoop );
803+ builder.setInsertionPointAfter (whereLoopNest->outerOp );
806804 maskedExpr.generateNoneElementalCleanupIfAny (builder, mapper);
807805 // Generate the value of the current element for the masked expression
808806 // at the current insertion point (inside the where loops, and any fir.if
@@ -1242,7 +1240,7 @@ void OrderedAssignmentRewriter::saveLeftHandSide(
12421240 LhsValueAndCleanUp loweredLhs = generateYieldedLHS (loc, region);
12431241 fir::factory::TemporaryStorage *temp = nullptr ;
12441242 if (loweredLhs.vectorSubscriptLoopNest )
1245- constructStack.push_back (loweredLhs.vectorSubscriptLoopNest ->outerLoop );
1243+ constructStack.push_back (loweredLhs.vectorSubscriptLoopNest ->outerOp );
12461244 if (loweredLhs.vectorSubscriptLoopNest && !rhsIsArray (regionAssignOp)) {
12471245 // Vector subscripted entity for which the shape must also be saved on top
12481246 // of the element addresses (e.g. the shape may change in each forall
@@ -1265,7 +1263,7 @@ void OrderedAssignmentRewriter::saveLeftHandSide(
12651263 // subscripted LHS.
12661264 auto &vectorTmp = temp->cast <fir::factory::AnyVectorSubscriptStack>();
12671265 auto insertionPoint = builder.saveInsertionPoint ();
1268- builder.setInsertionPoint (loweredLhs.vectorSubscriptLoopNest ->outerLoop );
1266+ builder.setInsertionPoint (loweredLhs.vectorSubscriptLoopNest ->outerOp );
12691267 vectorTmp.pushShape (loc, builder, shape);
12701268 builder.restoreInsertionPoint (insertionPoint);
12711269 } else {
@@ -1290,8 +1288,7 @@ void OrderedAssignmentRewriter::saveLeftHandSide(
12901288 generateCleanupIfAny (loweredLhs.elementalCleanup );
12911289 if (loweredLhs.vectorSubscriptLoopNest ) {
12921290 constructStack.pop_back ();
1293- builder.setInsertionPointAfter (
1294- loweredLhs.vectorSubscriptLoopNest ->outerLoop );
1291+ builder.setInsertionPointAfter (loweredLhs.vectorSubscriptLoopNest ->outerOp );
12951292 }
12961293}
12971294
0 commit comments