Skip to content

Commit 47f396d

Browse files
committed
fix cherry-pick upstream leftovers
1 parent a705acf commit 47f396d

File tree

4 files changed

+44
-9
lines changed

4 files changed

+44
-9
lines changed

llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,20 @@ TEST_F(OpenMPIRBuilderTest, ParallelSimpleGPU) {
750750
EXPECT_TRUE(
751751
isa<GlobalVariable>(Parallel60CI->getArgOperand(0)->stripPointerCasts()));
752752
EXPECT_EQ(Parallel60CI, Usr);
753+
754+
ASSERT_TRUE(isa<CallInst>(WrapperUsr));
755+
CallInst *OutlinedCI = dyn_cast<CallInst>(WrapperUsr);
756+
ASSERT_NE(OutlinedCI, nullptr);
757+
EXPECT_EQ(OutlinedCI->getCalledFunction(), OutlinedFn);
758+
759+
Function *WrapperFn = OutlinedCI->getFunction();
760+
EXPECT_TRUE(WrapperFn->hasInternalLinkage());
761+
EXPECT_EQ(WrapperFn->arg_size(), 2U);
762+
EXPECT_EQ(WrapperFn->getArg(0)->getType(),
763+
IntegerType::getInt16Ty(M->getContext()));
764+
EXPECT_EQ(WrapperFn->getArg(1)->getType(),
765+
IntegerType::getInt32Ty(M->getContext()));
766+
753767
M->setDataLayout(oldDLStr);
754768
}
755769

mlir/test/Target/LLVMIR/omptarget-multi-block-reduction.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<"dlti.alloca_memory_space" = 5 :
5757
}
5858

5959
// CHECK: call void @__kmpc_parallel_60({{.*}}, i32 1, i32 -1, i32 -1,
60-
// CHECK-SAME: ptr @[[PAR_OUTLINED:.*]], ptr null, ptr %2, i64 1, i32 0)
60+
// CHECK-SAME: ptr @[[PAR_OUTLINED:.*]], ptr null, ptr %{{.*}}, i64 1, i32 0)
6161

6262
// CHECK: define internal void @[[PAR_OUTLINED]]{{.*}} {
6363
// CHECK: .omp.reduction.then:

mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,13 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"dlti.alloca_memo
6363
// CHECK: store ptr %[[TMP0]], ptr %[[TMP2]], align 8
6464
// CHECK: %[[TMP6:.*]] = load ptr, ptr %[[TMP2]], align 8
6565
// CHECK: %[[OMP_GLOBAL_THREAD_NUM:.*]] = call i32 @__kmpc_global_thread_num(ptr addrspacecast (ptr addrspace(1) @[[GLOB1:[0-9]+]] to ptr))
66-
// CHECK: %[[GEP_:.*]] = getelementptr { ptr }, ptr addrspace(5) %[[STRUCTARG]], i32 0, i32 0
67-
// CHECK: store ptr %[[TMP6]], ptr addrspace(5) %[[GEP_]], align 8
68-
// CHECK: %[[TMP7:.*]] = getelementptr inbounds [1 x ptr], ptr %[[TMP2]], i64 0, i64 0
69-
// CHECK: store ptr %[[STRUCTARG_ASCAST]], ptr %[[TMP7]], align 8
70-
// CHECK: call void @__kmpc_parallel_60(ptr addrspacecast (ptr addrspace(1) @[[GLOB1]] to ptr), i32 %[[OMP_GLOBAL_THREAD_NUM]], i32 1, i32 -1, i32 -1, ptr @[[FUNC1:.*]], ptr null, ptr %[[TMP2]], i64 1, i32 0)
66+
// CHECK: %[[GEP_:.*]] = getelementptr { ptr }, ptr %[[STRUCTARG]], i32 0, i32 0
67+
// CHECK: store ptr %[[TMP6]], ptr %[[GEP_]], align 8
68+
// CHECK: %[[TMP7:.*]] = getelementptr inbounds [1 x ptr], ptr %[[TMP5]], i64 0, i64 0
69+
// CHECK: store ptr %[[STRUCTARG]], ptr %[[TMP7]], align 8
70+
// CHECK: call void @__kmpc_parallel_60(ptr addrspacecast (ptr addrspace(1) @[[GLOB1]] to ptr), i32 %[[OMP_GLOBAL_THREAD_NUM]], i32 1, i32 -1, i32 -1, ptr @[[FUNC1:.*]], ptr @[[FUNC1_WRAPPER:.*]], ptr %[[TMP5]], i64 1, i32 0)
71+
// CHECK: call void @__kmpc_free_shared(ptr %[[STRUCTARG]], i64 8)
72+
// CHECK: call void @__kmpc_free_shared(ptr %[[TMP2]], i64 8)
7173
// CHECK: call void @__kmpc_target_deinit()
7274

7375
// CHECK: define internal void @[[FUNC1]](
@@ -81,7 +83,7 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"dlti.alloca_memo
8183
// CHECK: call void @__kmpc_parallel_60(ptr addrspacecast (
8284
// CHECK-SAME: ptr addrspace(1) @[[NUM_THREADS_GLOB:[0-9]+]] to ptr),
8385
// CHECK-SAME: i32 [[NUM_THREADS_TMP0:%.*]], i32 1, i32 156,
84-
// CHECK-SAME: i32 -1, ptr [[FUNC_NUM_THREADS1:@.*]], ptr null, ptr [[NUM_THREADS_TMP1:%.*]], i64 1, i32 0)
86+
// CHECK-SAME: i32 -1, ptr @[[FUNC_NUM_THREADS1:.*]], ptr @[[FUNC2_WRAPPER:.*]], ptr [[NUM_THREADS_TMP1:%.*]], i64 1, i32 0)
8587

8688
// One of the arguments of kmpc_parallel_60 function is responsible for handling if clause
8789
// of omp parallel construct for target region. If this argument is nonzero,
@@ -102,4 +104,23 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"dlti.alloca_memo
102104
// CHECK: call void @__kmpc_parallel_60(ptr addrspacecast (
103105
// CHECK-SAME: ptr addrspace(1) {{.*}} to ptr),
104106
// CHECK-SAME: i32 {{.*}}, i32 %[[IFCOND_TMP4]], i32 -1,
105-
// CHECK-SAME: i32 -1, ptr {{.*}}, ptr null, ptr {{.*}}, i64 1, i32 0)
107+
// CHECK-SAME: i32 -1, ptr {{.*}}, ptr {{.*}}, ptr {{.*}}, i64 1, i32 0)
108+
109+
// CHECK: define internal void @[[FUNC1_WRAPPER]](i16 noundef zeroext %{{.*}}, i32 noundef %[[ADDR:.*]])
110+
// CHECK: %[[ADDR_ALLOCA:.*]] = alloca i32, align 4, addrspace(5)
111+
// CHECK: %[[ADDR_ASCAST:.*]] = addrspacecast ptr addrspace(5) %[[ADDR_ALLOCA]] to ptr
112+
// CHECK: %[[ZERO_ALLOCA:.*]] = alloca i32, align 4, addrspace(5)
113+
// CHECK: %[[ZERO_ASCAST:.*]] = addrspacecast ptr addrspace(5) %[[ZERO_ALLOCA]] to ptr
114+
// CHECK: %[[ARGS_ALLOCA:.*]] = alloca ptr, align 8, addrspace(5)
115+
// CHECK: %[[ARGS_ASCAST:.*]] = addrspacecast ptr addrspace(5) %[[ARGS_ALLOCA]] to ptr
116+
// CHECK: store i32 %[[ADDR]], ptr %[[ADDR_ASCAST]]
117+
// CHECK: store i32 0, ptr %[[ZERO_ASCAST]]
118+
// CHECK: call void @__kmpc_get_shared_variables(ptr %[[ARGS_ASCAST]])
119+
// CHECK: %[[LOAD_ARGS:.*]] = load ptr, ptr %[[ARGS_ASCAST]], align 8
120+
// CHECK: %[[FIRST_ARG:.*]] = getelementptr inbounds ptr, ptr %[[LOAD_ARGS]], i64 0
121+
// CHECK: %[[STRUCTARG:.*]] = load ptr, ptr %[[FIRST_ARG]], align 8
122+
// CHECK: call void @[[FUNC1]](ptr %[[ADDR_ASCAST]], ptr %[[ZERO_ASCAST]], ptr %[[STRUCTARG]])
123+
124+
// CHECK: define internal void @[[FUNC2_WRAPPER]](i16 noundef zeroext %{{.*}}, i32 noundef %{{.*}})
125+
// CHECK-NOT: define
126+
// CHECK: call void @[[FUNC_NUM_THREADS1]]({{.*}})

mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<"dlti.alloca_memo
3030
// CHECK: call void @__kmpc_parallel_60(ptr addrspacecast
3131
// CHECK-SAME: (ptr addrspace(1) @[[GLOB:[0-9]+]] to ptr),
3232
// CHECK-SAME: i32 %[[THREAD_NUM:.*]], i32 1, i32 -1, i32 -1,
33-
// CHECK-SAME: ptr @[[PARALLEL_FUNC:.*]], ptr null, ptr %[[PARALLEL_ARGS:.*]], i64 1, i32 0)
33+
// CHECK-SAME: ptr @[[PARALLEL_FUNC:.*]], ptr @[[PARALLEL_WRAPPER:.*]], ptr %[[PARALLEL_ARGS:.*]], i64 1, i32 0)
3434

3535
// CHECK: define internal void @[[PARALLEL_FUNC]]
3636
// CHECK-SAME: (ptr noalias noundef %[[TID_ADDR:.*]], ptr noalias noundef %[[ZERO_ADDR:.*]],

0 commit comments

Comments
 (0)