Skip to content

Commit d70ec10

Browse files
committed
Revert "[Clang][OpenMP] Switch to __kmpc_parallel_60 with strict parameter (llvm#171082)"
This reverts commit 0e92beb.
1 parent 7472759 commit d70ec10

File tree

64 files changed

+1472
-3402
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1472
-3402
lines changed

clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1510,9 +1510,6 @@ void CGOpenMPRuntimeGPU::emitParallelCall(
15101510
else
15111511
NumThreadsVal = Bld.CreateZExtOrTrunc(NumThreadsVal, CGF.Int32Ty);
15121512

1513-
// No strict prescriptiveness for the number of threads.
1514-
llvm::Value *StrictNumThreadsVal = llvm::ConstantInt::get(CGF.Int32Ty, 0);
1515-
15161513
assert(IfCondVal && "Expected a value");
15171514
llvm::Value *RTLoc = emitUpdateLocation(CGF, Loc);
15181515
llvm::Value *Args[] = {
@@ -1525,11 +1522,9 @@ void CGOpenMPRuntimeGPU::emitParallelCall(
15251522
ID,
15261523
Bld.CreateBitOrPointerCast(CapturedVarsAddrs.emitRawPointer(CGF),
15271524
CGF.VoidPtrPtrTy),
1528-
llvm::ConstantInt::get(CGM.SizeTy, CapturedVars.size()),
1529-
StrictNumThreadsVal};
1530-
1525+
llvm::ConstantInt::get(CGM.SizeTy, CapturedVars.size())};
15311526
CGF.EmitRuntimeCall(OMPBuilder.getOrCreateRuntimeFunction(
1532-
CGM.getModule(), OMPRTL___kmpc_parallel_60),
1527+
CGM.getModule(), OMPRTL___kmpc_parallel_51),
15331528
Args);
15341529
};
15351530

clang/test/OpenMP/amdgcn_target_device_vla.cpp

Lines changed: 110 additions & 331 deletions
Large diffs are not rendered by default.

clang/test/OpenMP/amdgpu_target_with_aligned_attribute.c

Lines changed: 47 additions & 257 deletions
Large diffs are not rendered by default.

clang/test/OpenMP/declare_target_codegen_globalization.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ int maini1() {
4040
// CHECK1-NEXT: [[TMP2:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1:[0-9]+]])
4141
// CHECK1-NEXT: [[TMP3:%.*]] = getelementptr inbounds [1 x ptr], ptr [[CAPTURED_VARS_ADDRS]], i64 0, i64 0
4242
// CHECK1-NEXT: store ptr [[TMP0]], ptr [[TMP3]], align 8
43-
// CHECK1-NEXT: call void @__kmpc_parallel_60(ptr @[[GLOB1]], i32 [[TMP2]], i32 1, i32 -1, i32 -1, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z6maini1v_l16_omp_outlined, ptr null, ptr [[CAPTURED_VARS_ADDRS]], i64 1, i32 0)
43+
// CHECK1-NEXT: call void @__kmpc_parallel_51(ptr @[[GLOB1]], i32 [[TMP2]], i32 1, i32 -1, i32 -1, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z6maini1v_l16_omp_outlined, ptr null, ptr [[CAPTURED_VARS_ADDRS]], i64 1)
4444
// CHECK1-NEXT: call void @__kmpc_target_deinit()
4545
// CHECK1-NEXT: ret void
4646
// CHECK1: worker.exit:
Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
// RUN: %clang_cc1 -fopenmp -x c++ -w -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm-bc %s -o %t-ppc-host.bc
2-
// RUN: %clang_cc1 -fopenmp -x c++ -w -std=c++11 -triple amdgcn-amd-amdhsa -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -fopenmp-is-target-device -fopenmp-host-ir-file-path %t-ppc-host.bc -target-cpu gfx906 -o - | FileCheck %s
3-
// RUN: %clang_cc1 -fopenmp -x c++ -w -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=spirv64-intel -emit-llvm-bc %s -o %t-ppc-spirv-host.bc
4-
// RUN: %clang_cc1 -fopenmp -x c++ -w -std=c++11 -triple spirv64-intel -fopenmp-targets=spirv64-intel -emit-llvm %s -fopenmp-is-target-device -fopenmp-host-ir-file-path %t-ppc-spirv-host.bc -o - | FileCheck %s
1+
// REQUIRES: amdgpu-registered-target
2+
3+
// RUN: %clang_cc1 -fopenmp -fno-openmp-target-big-jump-loop -x c++ -w -std=c++11 -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm-bc %s -o %t-ppc-host.bc
4+
// RUN: %clang_cc1 -fopenmp -fno-openmp-target-big-jump-loop -x c++ -w -std=c++11 -triple amdgcn-amd-amdhsa -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-ppc-host.bc -target-cpu gfx906 -o - | FileCheck %s
55
// expected-no-diagnostics
66

77

@@ -16,12 +16,6 @@ Inspired from SOLLVE tests:
1616

1717
#define N 1024
1818

19-
#ifdef __AMDGPU__
20-
#define GPU "amdgcn"
21-
#else
22-
#define GPU "spirv64"
23-
#endif
24-
2519
int metadirective1() {
2620

2721
int v1[N], v2[N], v3[N];
@@ -32,7 +26,7 @@ int metadirective1() {
3226
#pragma omp target map(to:v1,v2) map(from:v3, target_device_num) device(default_device)
3327
{
3428
#pragma omp metadirective \
35-
when(device={arch(GPU)}: teams distribute parallel for) \
29+
when(device={arch("amdgcn")}: teams distribute parallel for) \
3630
default(parallel for)
3731

3832
for (int i = 0; i < N; i++) {
@@ -44,28 +38,28 @@ int metadirective1() {
4438
return errors;
4539
}
4640

47-
// CHECK: define weak_odr protected {{amdgpu|spir}}_kernel void @[[METADIRECTIVE:.+metadirective1[a-z0-9_]+]]
41+
// CHECK: define weak_odr protected amdgpu_kernel void @[[METADIRECTIVE:.+metadirective1[a-z0-9_]+]]
4842
// CHECK: entry:
49-
// CHECK: %{{[0-9]}} = call{{.*}} i32 @__kmpc_target_init
43+
// CHECK: %{{[0-9]}} = call i32 @__kmpc_target_init
5044
// CHECK: user_code.entry:
51-
// CHECK: call{{.*}} void @[[METADIRECTIVE]]_omp_outlined
52-
// CHECK-NOT: call{{.*}} void @__kmpc_parallel_60
45+
// CHECK: call void @[[METADIRECTIVE]]_omp_outlined
46+
// CHECK-NOT: call void @__kmpc_parallel_51
5347
// CHECK: ret void
5448

5549

5650
// CHECK: define internal void @[[METADIRECTIVE]]_omp_outlined
5751
// CHECK: entry:
58-
// CHECK: call{{.*}} void @__kmpc_distribute_static_init
52+
// CHECK: call void @__kmpc_distribute_static_init
5953
// CHECK: omp.loop.exit:
60-
// CHECK: call{{.*}} void @__kmpc_distribute_static_fini
54+
// CHECK: call void @__kmpc_distribute_static_fini
6155

6256

6357
// CHECK: define internal void @[[METADIRECTIVE]]_omp_outlined_omp_outlined
6458
// CHECK: entry:
65-
// CHECK: call{{.*}} void @__kmpc_for_static_init_4
59+
// CHECK: call void @__kmpc_for_static_init_4
6660
// CHECK: omp.inner.for.body:
6761
// CHECK: store atomic {{.*}} monotonic
6862
// CHECK: omp.loop.exit:
69-
// CHECK-NEXT: call{{.*}} void @__kmpc_for_static_fini
63+
// CHECK-NEXT: call void @__kmpc_for_static_fini
7064
// CHECK-NEXT: ret void
7165

clang/test/OpenMP/metadirective_device_isa_codegen_amdgcn.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ int amdgcn_device_isa_selected() {
2424

2525
// CHECK: define weak_odr protected amdgpu_kernel void @__omp_offloading_{{.*}}amdgcn_device_isa_selected
2626
// CHECK: user_code.entry:
27-
// CHECK: call void @__kmpc_parallel_60
27+
// CHECK: call void @__kmpc_parallel_51
2828
// CHECK-NOT: call i32 @__kmpc_single
2929
// CHECK: ret void
3030

@@ -47,7 +47,7 @@ int amdgcn_device_isa_not_selected() {
4747
// CHECK: define weak_odr protected amdgpu_kernel void @__omp_offloading_{{.*}}amdgcn_device_isa_not_selected
4848
// CHECK: user_code.entry:
4949
// CHECK: call i32 @__kmpc_single
50-
// CHECK-NOT: call void @__kmpc_parallel_60
50+
// CHECK-NOT: call void @__kmpc_parallel_51
5151
// CHECK: ret void
5252

5353
#endif

0 commit comments

Comments
 (0)