diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2016-01-22 08:56:50 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2016-01-22 08:56:50 +0000 |
commit | 3015bcc62aa4fc948dd02736f525df4b5d18e8fb (patch) | |
tree | e4e194cff0be6799df9dcac9b9f4099b63664423 /clang/test/OpenMP/sections_reduction_codegen.cpp | |
parent | 40038d2d1eef3994c64aaebc61316999e5269ee9 (diff) | |
download | bcm5719-llvm-3015bcc62aa4fc948dd02736f525df4b5d18e8fb.tar.gz bcm5719-llvm-3015bcc62aa4fc948dd02736f525df4b5d18e8fb.zip |
[OPENMP] Generalize codegen for 'sections'-based directive.
If 'sections' directive has only one sub-section, the code for 'single'-based directive was emitted. Removed this codegen, because it causes crashes in different cases.
llvm-svn: 258495
Diffstat (limited to 'clang/test/OpenMP/sections_reduction_codegen.cpp')
-rw-r--r-- | clang/test/OpenMP/sections_reduction_codegen.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/clang/test/OpenMP/sections_reduction_codegen.cpp b/clang/test/OpenMP/sections_reduction_codegen.cpp index f67977c3958..b52d2ee3ec3 100644 --- a/clang/test/OpenMP/sections_reduction_codegen.cpp +++ b/clang/test/OpenMP/sections_reduction_codegen.cpp @@ -23,7 +23,6 @@ struct S { // CHECK-DAG: [[S_FLOAT_TY:%.+]] = type { float } // CHECK-DAG: [[S_INT_TY:%.+]] = type { i{{[0-9]+}} } // CHECK-DAG: [[ATOMIC_REDUCE_BARRIER_LOC:@.+]] = private unnamed_addr constant %{{.+}} { i32 0, i32 18, i32 0, i32 0, i8* -// CHECK-DAG: [[SINGLE_BARRIER_LOC:@.+]] = private unnamed_addr constant %{{.+}} { i32 0, i32 322, i32 0, i32 0, i8* // CHECK-DAG: [[REDUCTION_LOC:@.+]] = private unnamed_addr constant %{{.+}} { i32 0, i32 18, i32 0, i32 0, i8* // CHECK-DAG: [[REDUCTION_LOCK:@.+]] = common global [8 x i32] zeroinitializer @@ -195,23 +194,23 @@ int main() { // CHECK: ret // // CHECK: define internal void [[MAIN_MICROTASK]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, -// CHECK-NOT: alloca float, -// CHECK-NOT: alloca [[S_FLOAT_TY]], -// CHECK-NOT: alloca [[S_FLOAT_TY]], -// CHECK-NOT: alloca float, +// CHECK: alloca float, +// CHECK: alloca [[S_FLOAT_TY]], +// CHECK: alloca [[S_FLOAT_TY]], +// CHECK: alloca float, // CHECK: store i{{[0-9]+}}* [[GTID_ADDR]], i{{[0-9]+}}** [[GTID_ADDR_ADDR:%.+]], // 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 i32 @__kmpc_single( // CHECK-NOT: call {{.*}} [[S_FLOAT_TY_DESTR]]([[S_FLOAT_TY]]* [[VAR_PRIV]]) // CHECK-NOT: call {{.*}} [[S_FLOAT_TY_DESTR]]([[S_FLOAT_TY]]* -// CHECK: call void @__kmpc_end_single( +// CHECK: call void @__kmpc_for_static_init_4( +// CHECK: call void @__kmpc_for_static_fini( -// CHECK: call void @__kmpc_barrier(%{{.+}}* [[SINGLE_BARRIER_LOC]], i{{[0-9]+}} [[GTID]]) +// CHECK: call void @__kmpc_barrier( // CHECK: ret void |