Skip to content

Commit 349d8a0

Browse files
committed
[clang][test] Update test for freeze poison emission on local allocations
1 parent 8104aae commit 349d8a0

Some content is hidden

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

60 files changed

+646
-239
lines changed

clang/test/CodeGen/assign.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
// CHECK-LABEL: define{{.*}} void @f0()
66
// CHECK: [[x_0:%.*]] = alloca i32, align 4
77
// CHECK-NEXT: [[y_0:%.*]] = alloca i32, align 4
8+
// CHECK-NEXT: [[FREEZE:%.+]] = freeze i32 poison
9+
// CHECK-NEXT: store i32 [[FREEZE]], ptr [[x_0]], align 4
10+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
11+
// CHECK-NEXT: store i32 [[FREEZE1]], ptr [[y_0]], align 4
812
// CHECK-NEXT: store i32 1, ptr [[x_0]]
913
// CHECK-NEXT: store i32 1, ptr [[x_0]]
1014
// CHECK-NEXT: store i32 1, ptr [[y_0]]
@@ -21,6 +25,10 @@ void f0(void) {
2125
// CHECK-LABEL: define{{.*}} void @f1()
2226
// CHECK: [[x_1:%.*]] = alloca i32, align 4
2327
// CHECK-NEXT: [[y_1:%.*]] = alloca i32, align 4
28+
// CHECK-NEXT: [[FREEZE:%.+]] = freeze i32 poison
29+
// CHECK-NEXT: store i32 [[FREEZE]], ptr [[x_1]], align 4
30+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
31+
// CHECK-NEXT: store i32 [[FREEZE1]], ptr [[y_1]], align 4
2432
// CHECK-NEXT: store volatile i32 1, ptr [[x_1]]
2533
// CHECK-NEXT: store volatile i32 1, ptr [[x_1]]
2634
// CHECK-NEXT: store volatile i32 1, ptr [[y_1]]

clang/test/CodeGen/attr-maybeundef-template.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,13 @@
1616
// CHECK-NEXT: entry:
1717
// CHECK-NEXT: [[TMP1:%.*]] = alloca i32, align 4
1818
// CHECK-NEXT: [[TMP2:%.*]] = alloca float, align 4
19+
// CHECK-NEXT: [[FREEZE:%.+]] = freeze i32 poison
20+
// CHECK-NEXT: store i32 [[FREEZE]], ptr [[TMP1]], align 4
21+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze float poison
22+
// CHECK-NEXT: store float [[FREEZE1]], ptr [[TMP2]], align 4
1923
// CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
2024
// CHECK-NEXT: [[TMP4:%.*]] = freeze i32 [[TMP3:%.*]]
21-
// CHECK-NEXT: call void @{{.*}}test4{{.*}}(i32 noundef [[TMP4:%.*]])
25+
// CHECK-NEXT: call void @{{.*}}test4{{.*}}(i32 noundef [[TMP3:%.*]])
2226
// CHECK-NEXT: [[TMP5:%.*]] = load float, ptr [[TMP2:%.*]], align 4
2327
// CHECK-NEXT: [[TMP6:%.*]] = freeze float [[TMP5:%.*]]
2428
// CHECK-NEXT: call void @{{.*}}test4{{.*}}(float noundef [[TMP6:%.*]])

clang/test/CodeGen/attr-maybeundef.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ void t2(int param1, int param2, int param3) {
3838
// CHECK-NEXT: [[TMP1:%.*]] = alloca i32, align 4
3939
// CHECK-NEXT: [[TMP2:%.*]] = alloca i32, align 4
4040
// CHECK-NEXT: store i32 [[TMP0:%.*]], ptr [[TMP1:%.*]], align 4
41+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
42+
// CHECK-NEXT: store i32 [[FREEZE1]], ptr [[TMP2]], align 4
4143
// CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
4244
// CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[TMP2:%.*]], align 4
4345
// CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[TMP2:%.*]], align 4
@@ -56,6 +58,8 @@ void TestVariadicFunction(int x, ...) {
5658
// CHECK: define{{.*}} void @other()
5759
// CHECK-NEXT: entry:
5860
// CHECK-NEXT: [[TMP1:%.*]] = alloca i32, align 4
61+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
62+
// CHECK-NEXT: store i32 [[FREEZE1]], ptr [[TMP1]], align 4
5963
// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
6064
// CHECK-NEXT: call void @func(i32 noundef [[TMP2:%.*]])
6165
// CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
@@ -96,6 +100,8 @@ void func1(int param) {}
96100
// CHECK: define{{.*}} void @bar()
97101
// CHECK-NEXT: entry:
98102
// CHECK-NEXT: [[TMP1:%.*]] = alloca i32, align 4
103+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
104+
// CHECK-NEXT: store i32 [[FREEZE1]], ptr [[TMP1]], align 4
99105
// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[TMP1:%.*]], align 4
100106
// CHECK-NEXT: call void @foo(i32 noundef [[TMP2:%.*]])
101107
// CHECK-NEXT: ret void

clang/test/CodeGen/c11atomics-ios.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@ void testFloat(_Atomic(float) *fp) {
1515
// CHECK-NEXT: store float 1.000000e+00, ptr [[T0]], align 4
1616
__c11_atomic_init(fp, 1.0f);
1717

18+
// CHECK-NEXT: [[FREEZE:%.+]] = freeze float poison
19+
// CHECK-NEXT: store float [[FREEZE]], ptr [[X]], align 4
1820
// CHECK-NEXT: store float 2.000000e+00, ptr [[X]], align 4
1921
_Atomic(float) x = 2.0f;
2022

23+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze float poison
24+
// CHECK-NEXT: store float [[FREEZE1]], ptr [[F]], align 4
2125
// CHECK-NEXT: [[T0:%.*]] = load ptr, ptr [[FP]]
2226
// CHECK-NEXT: [[T2:%.*]] = load atomic float, ptr [[T0]] seq_cst, align 4
2327
// CHECK-NEXT: store float [[T2]], ptr [[F]]

clang/test/CodeGen/c11atomics.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,13 @@ void testFloat(_Atomic(float) *fp) {
166166
// CHECK-NEXT: store float 1.000000e+00, ptr [[T0]], align 4
167167
__c11_atomic_init(fp, 1.0f);
168168

169+
// CHECK-NEXT: [[FREEZE:%.+]] = freeze float poison
170+
// CHECK-NEXT: store float [[FREEZE]], ptr [[X]], align 4
169171
// CHECK-NEXT: store float 2.000000e+00, ptr [[X]], align 4
170172
_Atomic(float) x = 2.0f;
171173

174+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze float poison
175+
// CHECK-NEXT: store float [[FREEZE1]], ptr [[F]], align 4
172176
// CHECK-NEXT: [[T0:%.*]] = load ptr, ptr [[FP]]
173177
// CHECK-NEXT: call arm_aapcscc void @__atomic_load(i32 noundef 4, ptr noundef [[T0]], ptr noundef [[TMP0]], i32 noundef 5)
174178
// CHECK-NEXT: [[T3:%.*]] = load float, ptr [[TMP0]], align 4
@@ -324,6 +328,8 @@ void testPromotedStruct(_Atomic(PS) *fp) {
324328
// CHECK-NEXT: call arm_aapcscc void @__atomic_store(i32 noundef 8, ptr noundef [[T0]], ptr noundef [[TMP1]], i32 noundef 5)
325329
*fp = f;
326330

331+
// CHECK-NEXT: [[FREEZE:%.+]] = freeze i32 poison
332+
// CHECK-NEXT: store i32 [[FREEZE]], ptr [[A]], align 4
327333
// CHECK-NEXT: [[T0:%.*]] = load ptr, ptr [[FP]], align 4
328334
// CHECK-NEXT: call arm_aapcscc void @__atomic_load(i32 noundef 8, ptr noundef [[T0]], ptr noundef [[TMP3]], i32 noundef 5)
329335
// CHECK-NEXT: [[T0:%.*]] = getelementptr inbounds [[APS]], ptr [[TMP3]], i32 0, i32 0

clang/test/CodeGen/code_align.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
// CHECK-C: br label %for.cond, !llvm.loop ![[MD_FP:[0-9]+]]
55
// CHECK-C: br label %while.cond, !llvm.loop ![[MD_FP_1:[0-9]+]]
6-
// CHECK-C: br i1 %cmp3, label %do.body, label %do.end, !llvm.loop ![[MD_FP_2:[0-9]+]]
7-
// CHECK-C: br label %for.cond5, !llvm.loop ![[MD_FP_3:[0-9]+]]
6+
// CHECK-C: br i1 %cmp5, label %do.body, label %do.end, !llvm.loop ![[MD_FP_2:[0-9]+]]
7+
// CHECK-C: br label %for.cond8, !llvm.loop ![[MD_FP_3:[0-9]+]]
88

99
// CHECK-CPP: br label %for.cond, !llvm.loop ![[MD_FP_4:[0-9]+]]
10-
// CHECK-CPP: br label %for.cond2, !llvm.loop ![[MD_FP_5:[0-9]+]]
10+
// CHECK-CPP: br label %for.cond5, !llvm.loop ![[MD_FP_5:[0-9]+]]
1111

1212
void bar(int);
1313
void code_align() {

clang/test/CodeGen/debug-info-scope.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ int main(void) {
66
int j = 0;
77
int k = 0;
88
// CHECK: !DILocalVariable(name: "i"
9+
// CHECK-NEXT: !DILocation(
10+
// CHECK-NEXT: !DILocation(
911
// CHECK-NEXT: !DILexicalBlock(
1012

1113
// Make sure we don't have any more lexical blocks because we don't need them in
@@ -14,6 +16,8 @@ int main(void) {
1416
for (int i = 0; i < 10; i++)
1517
j++;
1618
// CHECK: !DILocalVariable(name: "i"
19+
// CHECK-NEXT: !DILocation(
20+
// CHECK-NEXT: !DILocation(
1721
// CHECK-NEXT: !DILexicalBlock(
1822
// GMLT-NOT: !DILexicalBlock
1923
for (int i = 0; i < 10; i++)

clang/test/CodeGen/exceptions-seh.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,12 @@ void finally_capture_twice(int x) {
264264
// CHECK-NEXT: [[Z:%.*]] = alloca i32, align 4
265265
// CHECK-NEXT: store ptr
266266
// CHECK-NEXT: store i8
267+
// CHECK-NEXT: [[FREEZE:%.+]] = freeze i32 poison
268+
// CHECK-NEXT: store i32 [[FREEZE]], ptr [[Y]], align 4
267269
// CHECK-NEXT: [[T0:%.*]] = load i32, ptr [[LOCAL]], align 4
268270
// CHECK-NEXT: store i32 [[T0]], ptr [[Y]], align 4
271+
// CHECK-NEXT: [[FREEZE1:%.+]] = freeze i32 poison
272+
// CHECK-NEXT: store i32 [[FREEZE1]], ptr [[Z]], align 4
269273
// CHECK-NEXT: [[T0:%.*]] = load i32, ptr [[LOCAL]], align 4
270274
// CHECK-NEXT: store i32 [[T0]], ptr [[Z]], align 4
271275
// CHECK-NEXT: ret void

clang/test/CodeGen/linetable-endscope.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
// CodeGenFunction::FinishFunction() for more details.
66

77
// CHECK: define {{.*}}foo
8+
// CHECK: store {{.*}}, !dbg !{{[0-9]+}}
89
// CHECK: store {{.*}}, !dbg ![[CONV:[0-9]+]]
910
// CHECK: ret {{.*}}, !dbg ![[RET:[0-9]+]]
1011

0 commit comments

Comments
 (0)