Skip to content

Commit 4c9cdfb

Browse files
committed
[clang][test] Fix auto-update test for freeze poison emission
This commit fixes tests where auto-update does not resolve IR ordering of functions.
1 parent f305ab0 commit 4c9cdfb

File tree

3 files changed

+157
-134
lines changed

3 files changed

+157
-134
lines changed

clang/test/CodeGenCXX/amdgcn-automatic-variable.cpp

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
11
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
22
// RUN: %clang_cc1 -O0 -triple amdgcn---amdgiz -emit-llvm %s -o - | FileCheck %s
33

4+
void destroy(int x);
5+
6+
class A {
7+
int x;
8+
9+
public:
10+
A();
11+
~A();
12+
};
13+
14+
// CHECK-LABEL: @_ZN1AC1Ev(
15+
// CHECK-NEXT: entry:
16+
// CHECK-NEXT: [[THIS_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
17+
// CHECK-NEXT: [[THIS_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[THIS_ADDR]] to ptr
18+
// CHECK-NEXT: store ptr [[THIS:%.*]], ptr [[THIS_ADDR_ASCAST]], align 8
19+
// CHECK-NEXT: [[THIS1:%.*]] = load ptr, ptr [[THIS_ADDR_ASCAST]], align 8
20+
// CHECK-NEXT: call void @_ZN1AC2Ev(ptr noundef nonnull align 4 dereferenceable(4) [[THIS1]])
21+
// CHECK-NEXT: ret void
22+
//
23+
A::A() : x(0) {}
24+
25+
// CHECK-LABEL: @_ZN1AD1Ev(
26+
// CHECK-NEXT: entry:
27+
// CHECK-NEXT: [[THIS_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
28+
// CHECK-NEXT: [[THIS_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[THIS_ADDR]] to ptr
29+
// CHECK-NEXT: store ptr [[THIS:%.*]], ptr [[THIS_ADDR_ASCAST]], align 8
30+
// CHECK-NEXT: [[THIS1:%.*]] = load ptr, ptr [[THIS_ADDR_ASCAST]], align 8
31+
// CHECK-NEXT: call void @_ZN1AD2Ev(ptr noundef nonnull align 4 dereferenceable(4) [[THIS1]]) #[[ATTR2:[0-9]+]]
32+
// CHECK-NEXT: ret void
33+
//
34+
A::~A() { destroy(x); }
35+
436
// CHECK-LABEL: @_Z5func1Pi(
537
// CHECK-NEXT: entry:
638
// CHECK-NEXT: [[X_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
@@ -69,35 +101,6 @@ void func2(void) {
69101
lv1 = lvc;
70102
}
71103

72-
void destroy(int x);
73-
74-
class A {
75-
int x;
76-
public:
77-
// CHECK-LABEL: @_ZN1AC1Ev(
78-
// CHECK-NEXT: entry:
79-
// CHECK-NEXT: [[THIS_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
80-
// CHECK-NEXT: [[THIS_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[THIS_ADDR]] to ptr
81-
// CHECK-NEXT: store ptr [[THIS:%.*]], ptr [[THIS_ADDR_ASCAST]], align 8
82-
// CHECK-NEXT: [[THIS1:%.*]] = load ptr, ptr [[THIS_ADDR_ASCAST]], align 8
83-
// CHECK-NEXT: call void @_ZN1AC2Ev(ptr noundef nonnull align 4 dereferenceable(4) [[THIS1]])
84-
// CHECK-NEXT: ret void
85-
//
86-
A():x(0) {}
87-
// CHECK-LABEL: @_ZN1AD1Ev(
88-
// CHECK-NEXT: entry:
89-
// CHECK-NEXT: [[THIS_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
90-
// CHECK-NEXT: [[THIS_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[THIS_ADDR]] to ptr
91-
// CHECK-NEXT: store ptr [[THIS:%.*]], ptr [[THIS_ADDR_ASCAST]], align 8
92-
// CHECK-NEXT: [[THIS1:%.*]] = load ptr, ptr [[THIS_ADDR_ASCAST]], align 8
93-
// CHECK-NEXT: call void @_ZN1AD2Ev(ptr noundef nonnull align 4 dereferenceable(4) [[THIS1]]) #[[ATTR2:[0-9]+]]
94-
// CHECK-NEXT: ret void
95-
//
96-
~A() {
97-
destroy(x);
98-
}
99-
};
100-
101104
// CHECK-LABEL: @_Z5func3v(
102105
// CHECK-NEXT: entry:
103106
// CHECK-NEXT: [[A:%.*]] = alloca [[CLASS_A:%.*]], align 4, addrspace(5)
@@ -160,4 +163,3 @@ void func7() {
160163
later:
161164
use(&x);
162165
}
163-

clang/test/CodeGenCXX/amdgcn-func-arg.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
class A {
55
public:
66
int x;
7+
A();
8+
~A();
9+
};
10+
711
// CHECK-LABEL: @_ZN1AC1Ev(
812
// CHECK-NEXT: entry:
913
// CHECK-NEXT: [[THIS_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
@@ -13,7 +17,8 @@ class A {
1317
// CHECK-NEXT: call void @_ZN1AC2Ev(ptr noundef nonnull align 4 dereferenceable(4) [[THIS1]])
1418
// CHECK-NEXT: ret void
1519
//
16-
A():x(0) {}
20+
A::A() : x(0) {}
21+
1722
// CHECK-LABEL: @_ZN1AD1Ev(
1823
// CHECK-NEXT: entry:
1924
// CHECK-NEXT: [[THIS_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
@@ -23,8 +28,7 @@ class A {
2328
// CHECK-NEXT: call void @_ZN1AD2Ev(ptr noundef nonnull align 4 dereferenceable(4) [[THIS1]]) #[[ATTR2:[0-9]+]]
2429
// CHECK-NEXT: ret void
2530
//
26-
~A() {}
27-
};
31+
A::~A() {}
2832

2933
class B {
3034
int x[100];

0 commit comments

Comments
 (0)