1
- ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
1
+ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
2
2
; RUN: opt -aa-pipeline=tbaa,basic-aa -passes=gvn -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-MEMDEP
3
3
; RUN: opt -aa-pipeline=tbaa,basic-aa -passes='gvn<memoryssa>' -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-MEMSSA
4
4
@@ -11,8 +11,8 @@ define void @yes(i1 %c, ptr %p, ptr %p1, ptr %q) nounwind {
11
11
; CHECK-MEMDEP-LABEL: define void @yes(
12
12
; CHECK-MEMDEP-SAME: i1 [[C:%.*]], ptr [[P:%.*]], ptr [[P1:%.*]], ptr [[Q:%.*]]) #[[ATTR0:[0-9]+]] {
13
13
; CHECK-MEMDEP-NEXT: [[ENTRY:.*:]]
14
- ; CHECK-MEMDEP-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[TBAA0 :![0-9]+]]
15
- ; CHECK-MEMDEP-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[TBAA3 :![0-9]+]]
14
+ ; CHECK-MEMDEP-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[RED_TBAA0 :![0-9]+]]
15
+ ; CHECK-MEMDEP-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[BLU_TBAA3 :![0-9]+]]
16
16
; CHECK-MEMDEP-NEXT: br i1 [[C]], label %[[IF_ELSE:.*]], label %[[IF_THEN:.*]]
17
17
; CHECK-MEMDEP: [[IF_THEN]]:
18
18
; CHECK-MEMDEP-NEXT: store i32 0, ptr [[Q]], align 4
@@ -23,11 +23,11 @@ define void @yes(i1 %c, ptr %p, ptr %p1, ptr %q) nounwind {
23
23
; CHECK-MEMSSA-LABEL: define void @yes(
24
24
; CHECK-MEMSSA-SAME: i1 [[C:%.*]], ptr [[P:%.*]], ptr [[P1:%.*]], ptr [[Q:%.*]]) #[[ATTR0:[0-9]+]] {
25
25
; CHECK-MEMSSA-NEXT: [[ENTRY:.*:]]
26
- ; CHECK-MEMSSA-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[TBAA0 :![0-9]+]]
27
- ; CHECK-MEMSSA-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[TBAA3 :![0-9]+]]
26
+ ; CHECK-MEMSSA-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[RED_TBAA0 :![0-9]+]]
27
+ ; CHECK-MEMSSA-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[BLU_TBAA3 :![0-9]+]]
28
28
; CHECK-MEMSSA-NEXT: br i1 [[C]], label %[[IF_ELSE:.*]], label %[[IF_THEN:.*]]
29
29
; CHECK-MEMSSA: [[IF_THEN]]:
30
- ; CHECK-MEMSSA-NEXT: [[T:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[TBAA0 ]]
30
+ ; CHECK-MEMSSA-NEXT: [[T:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[RED_TBAA0 ]]
31
31
; CHECK-MEMSSA-NEXT: store i32 [[T]], ptr [[Q]], align 4
32
32
; CHECK-MEMSSA-NEXT: ret void
33
33
; CHECK-MEMSSA: [[IF_ELSE]]:
@@ -56,15 +56,15 @@ define void @watch_out_for_type_change(i1 %c, ptr %p, ptr %p1, ptr %q) nounwind
56
56
; CHECK-LABEL: define void @watch_out_for_type_change(
57
57
; CHECK-SAME: i1 [[C:%.*]], ptr [[P:%.*]], ptr [[P1:%.*]], ptr [[Q:%.*]]) #[[ATTR0:[0-9]+]] {
58
58
; CHECK-NEXT: [[ENTRY:.*:]]
59
- ; CHECK-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[TBAA0 :![0-9]+]]
60
- ; CHECK-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[TBAA3 :![0-9]+]]
59
+ ; CHECK-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[RED_TBAA0 :![0-9]+]]
60
+ ; CHECK-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[BLU_TBAA3 :![0-9]+]]
61
61
; CHECK-NEXT: br i1 [[C]], label %[[IF_ELSE:.*]], label %[[IF_THEN:.*]]
62
62
; CHECK: [[IF_THEN]]:
63
- ; CHECK-NEXT: [[T:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[TBAA5 :![0-9]+]]
63
+ ; CHECK-NEXT: [[T:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[OUTER_SPACE_TBAA5 :![0-9]+]]
64
64
; CHECK-NEXT: store i32 [[T]], ptr [[Q]], align 4
65
65
; CHECK-NEXT: ret void
66
66
; CHECK: [[IF_ELSE]]:
67
- ; CHECK-NEXT: [[U:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[TBAA8 :![0-9]+]]
67
+ ; CHECK-NEXT: [[U:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[BRICK_RED_TBAA8 :![0-9]+]]
68
68
; CHECK-NEXT: store i32 [[U]], ptr [[Q]], align 4
69
69
; CHECK-NEXT: ret void
70
70
;
@@ -91,29 +91,29 @@ define void @watch_out_for_another_type_change(i1 %c, ptr %p, ptr %p1, ptr %q) n
91
91
; CHECK-MEMDEP-LABEL: define void @watch_out_for_another_type_change(
92
92
; CHECK-MEMDEP-SAME: i1 [[C:%.*]], ptr [[P:%.*]], ptr [[P1:%.*]], ptr [[Q:%.*]]) #[[ATTR0]] {
93
93
; CHECK-MEMDEP-NEXT: [[ENTRY:.*:]]
94
- ; CHECK-MEMDEP-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[TBAA0 ]]
95
- ; CHECK-MEMDEP-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[TBAA3 ]]
94
+ ; CHECK-MEMDEP-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[RED_TBAA0 ]]
95
+ ; CHECK-MEMDEP-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[BLU_TBAA3 ]]
96
96
; CHECK-MEMDEP-NEXT: br i1 [[C]], label %[[IF_ELSE:.*]], label %[[IF_THEN:.*]]
97
97
; CHECK-MEMDEP: [[IF_THEN]]:
98
98
; CHECK-MEMDEP-NEXT: store i32 0, ptr [[Q]], align 4
99
99
; CHECK-MEMDEP-NEXT: ret void
100
100
; CHECK-MEMDEP: [[IF_ELSE]]:
101
- ; CHECK-MEMDEP-NEXT: [[U:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[TBAA5 ]]
101
+ ; CHECK-MEMDEP-NEXT: [[U:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[OUTER_SPACE_TBAA5 ]]
102
102
; CHECK-MEMDEP-NEXT: store i32 [[U]], ptr [[Q]], align 4
103
103
; CHECK-MEMDEP-NEXT: ret void
104
104
;
105
105
; CHECK-MEMSSA-LABEL: define void @watch_out_for_another_type_change(
106
106
; CHECK-MEMSSA-SAME: i1 [[C:%.*]], ptr [[P:%.*]], ptr [[P1:%.*]], ptr [[Q:%.*]]) #[[ATTR0]] {
107
107
; CHECK-MEMSSA-NEXT: [[ENTRY:.*:]]
108
- ; CHECK-MEMSSA-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[TBAA0 ]]
109
- ; CHECK-MEMSSA-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[TBAA3 ]]
108
+ ; CHECK-MEMSSA-NEXT: store i32 0, ptr [[P]], align 4, !tbaa [[RED_TBAA0 ]]
109
+ ; CHECK-MEMSSA-NEXT: store i32 1, ptr [[P1]], align 4, !tbaa [[BLU_TBAA3 ]]
110
110
; CHECK-MEMSSA-NEXT: br i1 [[C]], label %[[IF_ELSE:.*]], label %[[IF_THEN:.*]]
111
111
; CHECK-MEMSSA: [[IF_THEN]]:
112
- ; CHECK-MEMSSA-NEXT: [[T:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[TBAA8 ]]
112
+ ; CHECK-MEMSSA-NEXT: [[T:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[BRICK_RED_TBAA8 ]]
113
113
; CHECK-MEMSSA-NEXT: store i32 [[T]], ptr [[Q]], align 4
114
114
; CHECK-MEMSSA-NEXT: ret void
115
115
; CHECK-MEMSSA: [[IF_ELSE]]:
116
- ; CHECK-MEMSSA-NEXT: [[U:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[TBAA5 ]]
116
+ ; CHECK-MEMSSA-NEXT: [[U:%.*]] = load i32, ptr [[P]], align 4, !tbaa [[OUTER_SPACE_TBAA5 ]]
117
117
; CHECK-MEMSSA-NEXT: store i32 [[U]], ptr [[Q]], align 4
118
118
; CHECK-MEMSSA-NEXT: ret void
119
119
;
@@ -144,25 +144,25 @@ if.else:
144
144
!8 = !{!"brick red" , !5 }
145
145
!9 = !{!"observable universe" }
146
146
;.
147
- ; CHECK-MEMDEP: [[TBAA0 ]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
147
+ ; CHECK-MEMDEP: [[RED_TBAA0 ]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
148
148
; CHECK-MEMDEP: [[META1]] = !{!"red", [[META2:![0-9]+]]}
149
149
; CHECK-MEMDEP: [[META2]] = !{}
150
- ; CHECK-MEMDEP: [[TBAA3 ]] = !{[[META4:![0-9]+]], [[META4]], i64 0}
150
+ ; CHECK-MEMDEP: [[BLU_TBAA3 ]] = !{[[META4:![0-9]+]], [[META4]], i64 0}
151
151
; CHECK-MEMDEP: [[META4]] = !{!"blu", [[META2]]}
152
- ; CHECK-MEMDEP: [[TBAA5 ]] = !{[[META6:![0-9]+]], [[META6]], i64 0}
152
+ ; CHECK-MEMDEP: [[OUTER_SPACE_TBAA5 ]] = !{[[META6:![0-9]+]], [[META6]], i64 0}
153
153
; CHECK-MEMDEP: [[META6]] = !{!"outer space", [[META7:![0-9]+]]}
154
154
; CHECK-MEMDEP: [[META7]] = !{!"observable universe"}
155
- ; CHECK-MEMDEP: [[TBAA8 ]] = !{[[META9:![0-9]+]], [[META9]], i64 0}
155
+ ; CHECK-MEMDEP: [[BRICK_RED_TBAA8 ]] = !{[[META9:![0-9]+]], [[META9]], i64 0}
156
156
; CHECK-MEMDEP: [[META9]] = !{!"brick red", [[META1]]}
157
157
;.
158
- ; CHECK-MEMSSA: [[TBAA0 ]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
158
+ ; CHECK-MEMSSA: [[RED_TBAA0 ]] = !{[[META1:![0-9]+]], [[META1]], i64 0}
159
159
; CHECK-MEMSSA: [[META1]] = !{!"red", [[META2:![0-9]+]]}
160
160
; CHECK-MEMSSA: [[META2]] = !{}
161
- ; CHECK-MEMSSA: [[TBAA3 ]] = !{[[META4:![0-9]+]], [[META4]], i64 0}
161
+ ; CHECK-MEMSSA: [[BLU_TBAA3 ]] = !{[[META4:![0-9]+]], [[META4]], i64 0}
162
162
; CHECK-MEMSSA: [[META4]] = !{!"blu", [[META2]]}
163
- ; CHECK-MEMSSA: [[TBAA5 ]] = !{[[META6:![0-9]+]], [[META6]], i64 0}
163
+ ; CHECK-MEMSSA: [[OUTER_SPACE_TBAA5 ]] = !{[[META6:![0-9]+]], [[META6]], i64 0}
164
164
; CHECK-MEMSSA: [[META6]] = !{!"outer space", [[META7:![0-9]+]]}
165
165
; CHECK-MEMSSA: [[META7]] = !{!"observable universe"}
166
- ; CHECK-MEMSSA: [[TBAA8 ]] = !{[[META9:![0-9]+]], [[META9]], i64 0}
166
+ ; CHECK-MEMSSA: [[BRICK_RED_TBAA8 ]] = !{[[META9:![0-9]+]], [[META9]], i64 0}
167
167
; CHECK-MEMSSA: [[META9]] = !{!"brick red", [[META1]]}
168
168
;.
0 commit comments