Skip to content

Commit 58fa7e4

Browse files
authored
Revert "[OMPIRBuilder] always leave PARALLEL via the same barrier" (#169829)
Reverts #164586 Reverting due to buildbot failure: https://lab.llvm.org/buildbot/#/builders/169/builds/17519
1 parent fb94261 commit 58fa7e4

23 files changed

+262
-369
lines changed

clang/test/OpenMP/cancel_codegen.cpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,8 @@ for (int i = 0; i < argc; ++i) {
774774
// CHECK3-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2:[0-9]+]], i32 [[OMP_GLOBAL_THREAD_NUM12]])
775775
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_AFTER:%.*]]
776776
// CHECK3: omp_section_loop.after:
777+
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_AFTERSECTIONS_FINI:%.*]]
778+
// CHECK3: omp_section_loop.aftersections.fini:
777779
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_PREHEADER13:%.*]]
778780
// CHECK3: omp_section_loop.preheader13:
779781
// CHECK3-NEXT: store i32 0, ptr [[P_LOWERBOUND29]], align 4
@@ -809,16 +811,16 @@ for (int i = 0; i < argc; ++i) {
809811
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY_CASE23_SECTION_AFTER:%.*]]
810812
// CHECK3: omp_section_loop.body.case23.section.after:
811813
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY16_SECTIONS_AFTER]]
812-
// CHECK3: omp_section_loop.body.case26:
814+
// CHECK3: omp_section_loop.body.case25:
813815
// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM27:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])
814816
// CHECK3-NEXT: [[TMP18:%.*]] = call i32 @__kmpc_cancel(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM27]], i32 3)
815817
// CHECK3-NEXT: [[TMP19:%.*]] = icmp eq i32 [[TMP18]], 0
816818
// CHECK3-NEXT: br i1 [[TMP19]], label [[OMP_SECTION_LOOP_BODY_CASE25_SPLIT:%.*]], label [[OMP_SECTION_LOOP_BODY_CASE25_CNCL:%.*]]
817-
// CHECK3: omp_section_loop.body.case26.split:
819+
// CHECK3: omp_section_loop.body.case25.split:
818820
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY_CASE25_SECTION_AFTER26:%.*]]
819-
// CHECK3: omp_section_loop.body.case26.section.after27:
821+
// CHECK3: omp_section_loop.body.case25.section.after26:
820822
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY_CASE25_SECTION_AFTER:%.*]]
821-
// CHECK3: omp_section_loop.body.case26.section.after:
823+
// CHECK3: omp_section_loop.body.case25.section.after:
822824
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY16_SECTIONS_AFTER]]
823825
// CHECK3: omp_section_loop.body16.sections.after:
824826
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_INC17]]
@@ -831,6 +833,8 @@ for (int i = 0; i < argc; ++i) {
831833
// CHECK3-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[OMP_GLOBAL_THREAD_NUM33]])
832834
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_AFTER19:%.*]]
833835
// CHECK3: omp_section_loop.after19:
836+
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_AFTER19SECTIONS_FINI:%.*]]
837+
// CHECK3: omp_section_loop.after19sections.fini:
834838
// CHECK3-NEXT: [[TMP20:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4
835839
// CHECK3-NEXT: store i32 [[TMP20]], ptr [[DOTCAPTURE_EXPR_]], align 4
836840
// CHECK3-NEXT: [[TMP21:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR_]], align 4
@@ -890,8 +894,8 @@ for (int i = 0; i < argc; ++i) {
890894
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_EXIT]]
891895
// CHECK3: omp_section_loop.body.case23.cncl:
892896
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_EXIT18]]
893-
// CHECK3: omp_section_loop.body.case26.cncl:
894-
// CHECK3-NEXT: br label [[OMP_REGION_FINALIZE:.*]]
897+
// CHECK3: omp_section_loop.body.case25.cncl:
898+
// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_EXIT18]]
895899
// CHECK3: .cancel.continue:
896900
// CHECK3-NEXT: br label [[OMP_IF_END:%.*]]
897901
// CHECK3: omp_if.else:
@@ -963,10 +967,8 @@ for (int i = 0; i < argc; ++i) {
963967
// CHECK3-NEXT: [[TMP8:%.*]] = call i32 @__kmpc_cancel_barrier(ptr @[[GLOB3:[0-9]+]], i32 [[OMP_GLOBAL_THREAD_NUM4]])
964968
// CHECK3-NEXT: [[TMP9:%.*]] = icmp eq i32 [[TMP8]], 0
965969
// CHECK3-NEXT: br i1 [[TMP9]], label [[DOTCONT:%.*]], label [[DOTCNCL5:%.*]]
966-
// CHECK3: .cncl4:
967-
// CHECK3-NEXT: br label [[FINI:%.*]]
968-
// CHECK3: .fini
969-
// CHECK3-NEXT: br label %[[EXIT_STUB:omp.par.exit.exitStub]]
970+
// CHECK3: .cncl5:
971+
// CHECK3-NEXT: br label [[OMP_PAR_OUTLINED_EXIT_EXITSTUB:%.*]]
970972
// CHECK3: .cont:
971973
// CHECK3-NEXT: [[TMP10:%.*]] = load i32, ptr [[LOADGEP_ARGC_ADDR]], align 4
972974
// CHECK3-NEXT: [[TMP11:%.*]] = load ptr, ptr [[LOADGEP_ARGV_ADDR]], align 8
@@ -982,14 +984,16 @@ for (int i = 0; i < argc; ++i) {
982984
// CHECK3: omp.par.region.parallel.after:
983985
// CHECK3-NEXT: br label [[OMP_PAR_PRE_FINALIZE:%.*]]
984986
// CHECK3: omp.par.pre_finalize:
985-
// CHECK3-NEXT: br label [[FINI]]
987+
// CHECK3-NEXT: br label [[OMP_PAR_OUTLINED_EXIT_EXITSTUB]]
986988
// CHECK3: 14:
987989
// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM1:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])
988990
// CHECK3-NEXT: [[TMP15:%.*]] = call i32 @__kmpc_cancel(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM1]], i32 1)
989991
// CHECK3-NEXT: [[TMP16:%.*]] = icmp eq i32 [[TMP15]], 0
990992
// CHECK3-NEXT: br i1 [[TMP16]], label [[DOTSPLIT:%.*]], label [[DOTCNCL:%.*]]
991993
// CHECK3: .cncl:
992-
// CHECK3-NEXT: br label [[FINI]]
994+
// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM2:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])
995+
// CHECK3-NEXT: [[TMP17:%.*]] = call i32 @__kmpc_cancel_barrier(ptr @[[GLOB2]], i32 [[OMP_GLOBAL_THREAD_NUM2]])
996+
// CHECK3-NEXT: br label [[OMP_PAR_OUTLINED_EXIT_EXITSTUB]]
993997
// CHECK3: .split:
994998
// CHECK3-NEXT: br label [[TMP4]]
995999
// CHECK3: omp.par.exit.exitStub:
@@ -1085,7 +1089,7 @@ for (int i = 0; i < argc; ++i) {
10851089
// CHECK3: .omp.sections.case.split:
10861090
// CHECK3-NEXT: br label [[DOTOMP_SECTIONS_EXIT]]
10871091
// CHECK3: .omp.sections.case.cncl:
1088-
// CHECK3-NEXT: br label [[FINI:%.*]]
1092+
// CHECK3-NEXT: br label [[CANCEL_CONT:%.*]]
10891093
// CHECK3: .omp.sections.exit:
10901094
// CHECK3-NEXT: br label [[OMP_INNER_FOR_INC:%.*]]
10911095
// CHECK3: omp.inner.for.inc:
@@ -1096,7 +1100,7 @@ for (int i = 0; i < argc; ++i) {
10961100
// CHECK3: omp.inner.for.end:
10971101
// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM3:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB19:[0-9]+]])
10981102
// CHECK3-NEXT: call void @__kmpc_for_static_fini(ptr @[[GLOB15]], i32 [[OMP_GLOBAL_THREAD_NUM3]])
1099-
// CHECK3-NEXT: br label [[CANCEL_CONT:.*]]
1103+
// CHECK3-NEXT: br label [[CANCEL_CONT]]
11001104
// CHECK3: cancel.cont:
11011105
// CHECK3-NEXT: ret void
11021106
// CHECK3: cancel.exit:
@@ -1149,8 +1153,6 @@ for (int i = 0; i < argc; ++i) {
11491153
// CHECK3: .omp.sections.case.split:
11501154
// CHECK3-NEXT: br label [[DOTOMP_SECTIONS_EXIT]]
11511155
// CHECK3: .omp.sections.case.cncl:
1152-
// CHECK3-NEXT: br label [[DOTFINI:.%*]]
1153-
// CHECK3: .fini:
11541156
// CHECK3-NEXT: br label [[CANCEL_CONT:%.*]]
11551157
// CHECK3: .omp.sections.case2:
11561158
// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM3:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])
@@ -1160,11 +1162,9 @@ for (int i = 0; i < argc; ++i) {
11601162
// CHECK3: .omp.sections.case2.split:
11611163
// CHECK3-NEXT: br label [[DOTOMP_SECTIONS_CASE2_SECTION_AFTER:%.*]]
11621164
// CHECK3: .omp.sections.case2.section.after:
1163-
// CHECK3-NEXT: br label [[OMP_REGION_FINALIZE]]
1164-
// CHECK3: omp_region.finalize:
1165-
// CHECK3-NEXT: br label [[OMP_SECTIONS_EXIT:.*]]
1165+
// CHECK3-NEXT: br label [[DOTOMP_SECTIONS_EXIT]]
11661166
// CHECK3: .omp.sections.case2.cncl:
1167-
// CHECK3-NEXT: br label [[FINI:.*]]
1167+
// CHECK3-NEXT: br label [[OMP_INNER_FOR_END]]
11681168
// CHECK3: .omp.sections.exit:
11691169
// CHECK3-NEXT: br label [[OMP_INNER_FOR_INC:%.*]]
11701170
// CHECK3: omp.inner.for.inc:

clang/test/OpenMP/critical_codegen.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ int main() {
3535
// ALL-NEXT: store i8 2, ptr [[A_ADDR]]
3636
// IRBUILDER-NEXT: br label %[[AFTER:[^ ,]+]]
3737
// IRBUILDER: [[AFTER]]
38-
// IRBUILDER-NEXT: br label %[[OMP_REGION_FINALIZE:[^ ,]+]]
39-
// IRBUILDER: [[OMP_REGION_FINALIZE]]
4038
// ALL-NEXT: call {{.*}}void @__kmpc_end_critical(ptr [[DEFAULT_LOC]], i32 [[GTID]], ptr [[UNNAMED_LOCK]])
4139
#pragma omp critical
4240
a = 2;

clang/test/OpenMP/critical_codegen_attr.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ int main() {
3535
// ALL-NEXT: store i8 2, ptr [[A_ADDR]]
3636
// IRBUILDER-NEXT: br label %[[AFTER:[^ ,]+]]
3737
// IRBUILDER: [[AFTER]]
38-
// IRBUILDER-NEXT: br label %[[OMP_REGION_FINALIZE:[^ ,]+]]
39-
// IRBUILDER: [[OMP_REGION_FINALIZE]]
4038
// ALL-NEXT: call {{.*}}void @__kmpc_end_critical(ptr [[DEFAULT_LOC]], i32 [[GTID]], ptr [[UNNAMED_LOCK]])
4139
[[omp::directive(critical)]]
4240
a = 2;

0 commit comments

Comments
 (0)