@@ -464,7 +464,7 @@ void OrderedAssignmentRewriter::pre(hlfir::RegionAssignOp regionAssignOp) {
464
464
// if the LHS is not).
465
465
mlir::Value shape = hlfir::genShape (loc, builder, lhsEntity);
466
466
elementalLoopNest = hlfir::genLoopNest (loc, builder, shape);
467
- builder.setInsertionPointToStart (elementalLoopNest->innerLoop . getBody () );
467
+ builder.setInsertionPointToStart (elementalLoopNest->body );
468
468
lhsEntity = hlfir::getElementAt (loc, builder, lhsEntity,
469
469
elementalLoopNest->oneBasedIndices );
470
470
rhsEntity = hlfir::getElementAt (loc, builder, rhsEntity,
@@ -484,7 +484,7 @@ void OrderedAssignmentRewriter::pre(hlfir::RegionAssignOp regionAssignOp) {
484
484
for (auto &cleanupConversion : argConversionCleanups)
485
485
cleanupConversion ();
486
486
if (elementalLoopNest)
487
- builder.setInsertionPointAfter (elementalLoopNest->outerLoop );
487
+ builder.setInsertionPointAfter (elementalLoopNest->outerOp );
488
488
} else {
489
489
// TODO: preserve allocatable assignment aspects for forall once
490
490
// they are conveyed in hlfir.region_assign.
@@ -493,7 +493,7 @@ void OrderedAssignmentRewriter::pre(hlfir::RegionAssignOp regionAssignOp) {
493
493
generateCleanupIfAny (loweredLhs.elementalCleanup );
494
494
if (loweredLhs.vectorSubscriptLoopNest )
495
495
builder.setInsertionPointAfter (
496
- loweredLhs.vectorSubscriptLoopNest ->outerLoop );
496
+ loweredLhs.vectorSubscriptLoopNest ->outerOp );
497
497
generateCleanupIfAny (oldRhsYield);
498
498
generateCleanupIfAny (loweredLhs.nonElementalCleanup );
499
499
}
@@ -518,16 +518,16 @@ void OrderedAssignmentRewriter::pre(hlfir::WhereOp whereOp) {
518
518
hlfir::Entity savedMask{maybeSaved->first };
519
519
mlir::Value shape = hlfir::genShape (loc, builder, savedMask);
520
520
whereLoopNest = hlfir::genLoopNest (loc, builder, shape);
521
- constructStack.push_back (whereLoopNest->outerLoop . getOperation () );
522
- builder.setInsertionPointToStart (whereLoopNest->innerLoop . getBody () );
521
+ constructStack.push_back (whereLoopNest->outerOp );
522
+ builder.setInsertionPointToStart (whereLoopNest->body );
523
523
mlir::Value cdt = hlfir::getElementAt (loc, builder, savedMask,
524
524
whereLoopNest->oneBasedIndices );
525
525
generateMaskIfOp (cdt);
526
526
if (maybeSaved->second ) {
527
527
// If this is the same run as the one that saved the value, the clean-up
528
528
// was left-over to be done now.
529
529
auto insertionPoint = builder.saveInsertionPoint ();
530
- builder.setInsertionPointAfter (whereLoopNest->outerLoop );
530
+ builder.setInsertionPointAfter (whereLoopNest->outerOp );
531
531
generateCleanupIfAny (maybeSaved->second );
532
532
builder.restoreInsertionPoint (insertionPoint);
533
533
}
@@ -539,8 +539,8 @@ void OrderedAssignmentRewriter::pre(hlfir::WhereOp whereOp) {
539
539
mask.generateNoneElementalPart (builder, mapper);
540
540
mlir::Value shape = mask.generateShape (builder, mapper);
541
541
whereLoopNest = hlfir::genLoopNest (loc, builder, shape);
542
- constructStack.push_back (whereLoopNest->outerLoop . getOperation () );
543
- builder.setInsertionPointToStart (whereLoopNest->innerLoop . getBody () );
542
+ constructStack.push_back (whereLoopNest->outerOp );
543
+ builder.setInsertionPointToStart (whereLoopNest->body );
544
544
mlir::Value cdt = generateMaskedEntity (mask);
545
545
generateMaskIfOp (cdt);
546
546
return ;
@@ -754,7 +754,7 @@ OrderedAssignmentRewriter::generateYieldedLHS(
754
754
loweredLhs.vectorSubscriptLoopNest = hlfir::genLoopNest (
755
755
loc, builder, loweredLhs.vectorSubscriptShape .value ());
756
756
builder.setInsertionPointToStart (
757
- loweredLhs.vectorSubscriptLoopNest ->innerLoop . getBody () );
757
+ loweredLhs.vectorSubscriptLoopNest ->body );
758
758
}
759
759
loweredLhs.lhs = temp->second .fetch (loc, builder);
760
760
return loweredLhs;
@@ -772,7 +772,7 @@ OrderedAssignmentRewriter::generateYieldedLHS(
772
772
hlfir::genLoopNest (loc, builder, *loweredLhs.vectorSubscriptShape ,
773
773
!elementalAddrLhs.isOrdered ());
774
774
builder.setInsertionPointToStart (
775
- loweredLhs.vectorSubscriptLoopNest ->innerLoop . getBody () );
775
+ loweredLhs.vectorSubscriptLoopNest ->body );
776
776
mapper.map (elementalAddrLhs.getIndices (),
777
777
loweredLhs.vectorSubscriptLoopNest ->oneBasedIndices );
778
778
for (auto &op : elementalAddrLhs.getBody ().front ().without_terminator ())
@@ -798,11 +798,11 @@ OrderedAssignmentRewriter::generateMaskedEntity(MaskedArrayExpr &maskedExpr) {
798
798
if (!maskedExpr.noneElementalPartWasGenerated ) {
799
799
// Generate none elemental part before the where loops (but inside the
800
800
// current forall loops if any).
801
- builder.setInsertionPoint (whereLoopNest->outerLoop );
801
+ builder.setInsertionPoint (whereLoopNest->outerOp );
802
802
maskedExpr.generateNoneElementalPart (builder, mapper);
803
803
}
804
804
// Generate the none elemental part cleanup after the where loops.
805
- builder.setInsertionPointAfter (whereLoopNest->outerLoop );
805
+ builder.setInsertionPointAfter (whereLoopNest->outerOp );
806
806
maskedExpr.generateNoneElementalCleanupIfAny (builder, mapper);
807
807
// Generate the value of the current element for the masked expression
808
808
// at the current insertion point (inside the where loops, and any fir.if
@@ -1242,7 +1242,7 @@ void OrderedAssignmentRewriter::saveLeftHandSide(
1242
1242
LhsValueAndCleanUp loweredLhs = generateYieldedLHS (loc, region);
1243
1243
fir::factory::TemporaryStorage *temp = nullptr ;
1244
1244
if (loweredLhs.vectorSubscriptLoopNest )
1245
- constructStack.push_back (loweredLhs.vectorSubscriptLoopNest ->outerLoop );
1245
+ constructStack.push_back (loweredLhs.vectorSubscriptLoopNest ->outerOp );
1246
1246
if (loweredLhs.vectorSubscriptLoopNest && !rhsIsArray (regionAssignOp)) {
1247
1247
// Vector subscripted entity for which the shape must also be saved on top
1248
1248
// of the element addresses (e.g. the shape may change in each forall
@@ -1265,7 +1265,7 @@ void OrderedAssignmentRewriter::saveLeftHandSide(
1265
1265
// subscripted LHS.
1266
1266
auto &vectorTmp = temp->cast <fir::factory::AnyVectorSubscriptStack>();
1267
1267
auto insertionPoint = builder.saveInsertionPoint ();
1268
- builder.setInsertionPoint (loweredLhs.vectorSubscriptLoopNest ->outerLoop );
1268
+ builder.setInsertionPoint (loweredLhs.vectorSubscriptLoopNest ->outerOp );
1269
1269
vectorTmp.pushShape (loc, builder, shape);
1270
1270
builder.restoreInsertionPoint (insertionPoint);
1271
1271
} else {
@@ -1291,7 +1291,7 @@ void OrderedAssignmentRewriter::saveLeftHandSide(
1291
1291
if (loweredLhs.vectorSubscriptLoopNest ) {
1292
1292
constructStack.pop_back ();
1293
1293
builder.setInsertionPointAfter (
1294
- loweredLhs.vectorSubscriptLoopNest ->outerLoop );
1294
+ loweredLhs.vectorSubscriptLoopNest ->outerOp );
1295
1295
}
1296
1296
}
1297
1297
0 commit comments