diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2019-01-03 16:25:35 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2019-01-03 16:25:35 +0000 |
commit | a3924b517e2d10c25ee3b41dfd96bb9a5333b64e (patch) | |
tree | c616eef5a288481766e0d99333a0f7e00380a83b /clang/test/OpenMP/nvptx_data_sharing.cpp | |
parent | 16228bc65e46de9045d522dfe7afbba8c4bb5955 (diff) | |
download | bcm5719-llvm-a3924b517e2d10c25ee3b41dfd96bb9a5333b64e.tar.gz bcm5719-llvm-a3924b517e2d10c25ee3b41dfd96bb9a5333b64e.zip |
[OPENMP][NVPTX]Use __kmpc_barrier_simple_spmd(nullptr, 0) instead of
nvvm_barrier0.
Use runtime functions instead of the direct call to the nvvm intrinsics.
It allows to prevent some dangerous LLVM optimizations, that breaks the
code for the NVPTX target.
llvm-svn: 350328
Diffstat (limited to 'clang/test/OpenMP/nvptx_data_sharing.cpp')
-rw-r--r-- | clang/test/OpenMP/nvptx_data_sharing.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/test/OpenMP/nvptx_data_sharing.cpp b/clang/test/OpenMP/nvptx_data_sharing.cpp index 3baee007fa8..df9c3ee83b2 100644 --- a/clang/test/OpenMP/nvptx_data_sharing.cpp +++ b/clang/test/OpenMP/nvptx_data_sharing.cpp @@ -34,7 +34,7 @@ void test_ds(){ /// ========= In the worker function ========= /// // CK1: {{.*}}define internal void @__omp_offloading{{.*}}test_ds{{.*}}_worker() -// CK1: call void @llvm.nvvm.barrier0() +// CK1: call void @__kmpc_barrier_simple_spmd(%struct.ident_t* null, i32 0) // CK1-NOT: call void @__kmpc_data_sharing_init_stack /// ========= In the kernel function ========= /// @@ -59,8 +59,8 @@ void test_ds(){ // CK1: [[SHARGSTMP2:%.+]] = getelementptr inbounds i8*, i8** [[SHARGSTMP1]], i64 0 // CK1: [[SHAREDVAR:%.+]] = bitcast i32* [[A]] to i8* // CK1: store i8* [[SHAREDVAR]], i8** [[SHARGSTMP2]] -// CK1: call void @llvm.nvvm.barrier0() -// CK1: call void @llvm.nvvm.barrier0() +// CK1: call void @__kmpc_barrier_simple_spmd(%struct.ident_t* null, i32 0) +// CK1: call void @__kmpc_barrier_simple_spmd(%struct.ident_t* null, i32 0) // CK1: call void @__kmpc_end_sharing_variables() // CK1: store i32 100, i32* [[B]] // CK1: call void @__kmpc_kernel_prepare_parallel({{.*}}, i16 1) @@ -72,8 +72,8 @@ void test_ds(){ // CK1: [[SHARGSTMP12:%.+]] = getelementptr inbounds i8*, i8** [[SHARGSTMP3]], i64 1 // CK1: [[SHAREDVAR2:%.+]] = bitcast i32* [[A]] to i8* // CK1: store i8* [[SHAREDVAR2]], i8** [[SHARGSTMP12]] -// CK1: call void @llvm.nvvm.barrier0() -// CK1: call void @llvm.nvvm.barrier0() +// CK1: call void @__kmpc_barrier_simple_spmd(%struct.ident_t* null, i32 0) +// CK1: call void @__kmpc_barrier_simple_spmd(%struct.ident_t* null, i32 0) // CK1: call void @__kmpc_end_sharing_variables() // CK1: [[SHARED_MEM_FLAG:%.+]] = load i16, i16* [[KERNEL_SHARED]], // CK1: call void @__kmpc_restore_team_static_memory(i16 [[SHARED_MEM_FLAG]]) |