diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2016-02-15 08:07:17 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2016-02-15 08:07:17 +0000 |
commit | cd8b6a2cf1b3560cee7cbe7e2da947987f243e8d (patch) | |
tree | 901a9f3e77bd9b6f8d7fe51463d2b7490cafa694 /clang/test/OpenMP/for_firstprivate_codegen.cpp | |
parent | 3cc265458f9545d126550a55fcbd12778afaedd6 (diff) | |
download | bcm5719-llvm-cd8b6a2cf1b3560cee7cbe7e2da947987f243e8d.tar.gz bcm5719-llvm-cd8b6a2cf1b3560cee7cbe7e2da947987f243e8d.zip |
[OPENMP] Remove extra sync barriers for 'firstprivate' clause.
Sync barrier will be emitted after generation of firstprivate variables
only if one of the firstprivate vars is used in lastprivate clause.
llvm-svn: 260877
Diffstat (limited to 'clang/test/OpenMP/for_firstprivate_codegen.cpp')
-rw-r--r-- | clang/test/OpenMP/for_firstprivate_codegen.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/clang/test/OpenMP/for_firstprivate_codegen.cpp b/clang/test/OpenMP/for_firstprivate_codegen.cpp index 01a93559451..5b1a4069410 100644 --- a/clang/test/OpenMP/for_firstprivate_codegen.cpp +++ b/clang/test/OpenMP/for_firstprivate_codegen.cpp @@ -95,7 +95,7 @@ int main() { // LAMBDA: [[SIVAR2_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[SIVAR2_PRIVATE_ADDR_REF]] // LAMBDA: store i{{[0-9]+}} [[SIVAR2_VAL]], i{{[0-9]+}}* [[SIVAR2_PRIVATE_ADDR]] - // LAMBDA: call void @__kmpc_barrier( + // LAMBDA-NOT: call void @__kmpc_barrier( g = 1; g1 = 1; sivar = 2; @@ -158,7 +158,7 @@ int main() { // BLOCKS: [[SIVAR2_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[SIVAR_REF_ADDRR]] // BLOCKS: store i{{[0-9]+}} {{.+}}, i{{[0-9]+}}* [[SIVAR2_PRIVATE_ADDR]] - // BLOCKS: call void @__kmpc_barrier( + // BLOCKS-NOT: call void @__kmpc_barrier( g = 1; g1 =1; sivar = 2; @@ -246,7 +246,7 @@ int main() { // CHECK: store i{{[0-9]+}} [[SIVAR_VAL]], i{{[0-9]+}}* [[SIVAR_PRIV]] // Synchronization for initialization. -// CHECK: call void @__kmpc_barrier(%{{.+}}* [[IMPLICIT_BARRIER_LOC]], i{{[0-9]+}} [[GTID]]) +// CHECK-NOT: call void @__kmpc_barrier( // CHECK: call void @__kmpc_for_static_init_4( // CHECK: call void @__kmpc_for_static_fini( @@ -310,10 +310,8 @@ int main() { // CHECK: call {{.*}} [[S_INT_TY_COPY_CONSTR]]([[S_INT_TY]]* [[VAR_PRIV]], [[S_INT_TY]]* {{.*}} [[VAR_REF]], [[ST_TY]]* [[ST_TY_TEMP]]) // CHECK: call {{.*}} [[ST_TY_DESTR]]([[ST_TY]]* [[ST_TY_TEMP]]) -// Synchronization for initialization. -// CHECK: [[GTID_REF:%.+]] = load i{{[0-9]+}}*, i{{[0-9]+}}** [[GTID_ADDR_ADDR]] -// CHECK: [[GTID:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[GTID_REF]] -// CHECK: call void @__kmpc_barrier(%{{.+}}* [[IMPLICIT_BARRIER_LOC]], i{{[0-9]+}} [[GTID]]) +// No synchronization for initialization. +// CHECK-NOT: call void @__kmpc_barrier( // CHECK: call void @__kmpc_for_static_init_4( // CHECK: call void @__kmpc_for_static_fini( |