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(
652
652
const semantics::Symbol *symToPrivatize, OperandsStructType *clauseOps) {
653
653
constexpr bool isDoConcurrent =
654
654
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
+ }
655
662
656
663
const semantics::Symbol *sym =
657
664
isDoConcurrent ? &symToPrivatize->GetUltimate () : symToPrivatize;
@@ -824,6 +831,9 @@ void privatizeSymbol(
824
831
825
832
if (isDoConcurrent)
826
833
allPrivatizedSymbols.insert (symToPrivatize);
834
+
835
+ if (isDoConcurrent)
836
+ firOpBuilder.restoreInsertionPoint (dcIP);
827
837
}
828
838
829
839
template void
Original file line number Diff line number Diff line change @@ -26,7 +26,12 @@ end subroutine local_assoc
26
26
! CHECK-NEXT: fir.yield(%[[LOCAL_ARG]] : !fir.ref<!fir.box<!fir.array<8xf32>>>)
27
27
! CHECK-NEXT: }
28
28
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:.*]] : {{.*}}) {
30
35
! CHECK: %[[LOCAL_DECL:.*]]:2 = hlfir.declare %[[LOCAL_ARG]]
31
36
! CHECK: %[[LOCAL_LD:.*]] = fir.load %[[LOCAL_DECL]]#0 : !fir.ref<!fir.box<!fir.array<8xf32>>>
32
37
! CHECK: hlfir.designate %[[LOCAL_LD]] (%{{.*}})
You can’t perform that action at this time.
0 commit comments