File tree Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -652,6 +652,13 @@ void privatizeSymbol(
652652 const semantics::Symbol *symToPrivatize, OperandsStructType *clauseOps) {
653653 constexpr bool isDoConcurrent =
654654 std::is_same_v<OpType, fir::LocalitySpecifierOp>;
655+ mlir::OpBuilder::InsertPoint dcIP;
656+
657+ if (isDoConcurrent) {
658+ dcIP = firOpBuilder.saveInsertionPoint ();
659+ firOpBuilder.setInsertionPoint (
660+ firOpBuilder.getRegion ().getParentOfType <fir::DoConcurrentOp>());
661+ }
655662
656663 const semantics::Symbol *sym =
657664 isDoConcurrent ? &symToPrivatize->GetUltimate () : symToPrivatize;
@@ -824,6 +831,9 @@ void privatizeSymbol(
824831
825832 if (isDoConcurrent)
826833 allPrivatizedSymbols.insert (symToPrivatize);
834+
835+ if (isDoConcurrent)
836+ firOpBuilder.restoreInsertionPoint (dcIP);
827837}
828838
829839template void
Original file line number Diff line number Diff line change @@ -26,7 +26,12 @@ end subroutine local_assoc
2626! CHECK-NEXT: fir.yield(%[[LOCAL_ARG]] : !fir.ref<!fir.box<!fir.array<8xf32>>>)
2727! CHECK-NEXT: }
2828
29- ! CHECK: fir.do_concurrent.loop {{.*}} local(@[[LOCALIZER]] %{{.*}} -> %[[LOCAL_ARG:.*]] : {{.*}}) {
29+ ! CHECK: func.func @_QPlocal_assoc()
30+ ! CHECK: %[[BOX_REF:.*]] = fir.alloca !fir.box<!fir.array<8xf32>>
31+ ! CHECK: %[[ASSOC_DECL:.*]]:2 = hlfir.declare %{{.*}}(%{{.*}}) {uniq_name = "{{.*}}local_assocEa"}
32+ ! CHECK: %[[ASSOC_BOX:.*]] = fir.embox %[[ASSOC_DECL]]#0(%{{.*}})
33+ ! CHECK: fir.store %[[ASSOC_BOX]] to %[[BOX_REF]]
34+ ! CHECK: fir.do_concurrent.loop {{.*}} local(@[[LOCALIZER]] %[[BOX_REF]] -> %[[LOCAL_ARG:.*]] : {{.*}}) {
3035! CHECK: %[[LOCAL_DECL:.*]]:2 = hlfir.declare %[[LOCAL_ARG]]
3136! CHECK: %[[LOCAL_LD:.*]] = fir.load %[[LOCAL_DECL]]#0 : !fir.ref<!fir.box<!fir.array<8xf32>>>
3237! CHECK: hlfir.designate %[[LOCAL_LD]] (%{{.*}})
You can’t perform that action at this time.
0 commit comments