Skip to content

Commit e1323aa

Browse files
committed
[AArch64] Convert some tests to opaque pointers (NFC)
Nothing interesting, but required some fixups to MIR.
1 parent 138a954 commit e1323aa

File tree

2 files changed

+44
-45
lines changed

2 files changed

+44
-45
lines changed

llvm/test/CodeGen/AArch64/loop-sink-limit.mir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
br i1 %cmp63, label %for.body.preheader, label %for.cond.cleanup
2121

2222
for.body.preheader: ; preds = %entry
23-
%0 = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0), align 4
23+
%0 = load i32, ptr @A, align 4
2424
br label %for.body
2525

2626
for.cond.cleanup: ; preds = %for.body, %entry
@@ -99,7 +99,7 @@ body: |
9999
; SINK1: bb.1.for.body.preheader:
100100
; SINK1: successors: %bb.3(0x80000000)
101101
; SINK1: [[ADRP:%[0-9]+]]:gpr64common = ADRP target-flags(aarch64-page) @A
102-
; SINK1: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
102+
; SINK1: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
103103
; SINK1: B %bb.3
104104
; SINK1: bb.2.for.cond.cleanup:
105105
; SINK1: [[PHI:%[0-9]+]]:gpr32all = PHI [[COPY]], %bb.0, %4, %bb.3
@@ -126,7 +126,7 @@ body: |
126126
; SINK2: bb.1.for.body.preheader:
127127
; SINK2: successors: %bb.3(0x80000000)
128128
; SINK2: [[ADRP:%[0-9]+]]:gpr64common = ADRP target-flags(aarch64-page) @A
129-
; SINK2: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
129+
; SINK2: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
130130
; SINK2: B %bb.3
131131
; SINK2: bb.2.for.cond.cleanup:
132132
; SINK2: [[PHI:%[0-9]+]]:gpr32all = PHI [[COPY]], %bb.0, %4, %bb.3
@@ -155,7 +155,7 @@ body: |
155155
successors: %bb.3(0x80000000)
156156
157157
%8:gpr64common = ADRP target-flags(aarch64-page) @A
158-
%9:gpr32 = LDRWui killed %8, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
158+
%9:gpr32 = LDRWui killed %8, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
159159
B %bb.3
160160
161161
bb.2.for.cond.cleanup:

llvm/test/CodeGen/AArch64/loop-sink.mir

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@
88

99
@A = external dso_local global [100 x i32], align 4
1010

11-
define void @cant_sink_adds_call_in_block(i8* nocapture readonly %input, %struct.A* %a) {
11+
define void @cant_sink_adds_call_in_block(ptr nocapture readonly %input, ptr %a) {
1212
bb:
13-
%i = getelementptr inbounds %struct.A, %struct.A* %a, i64 0, i32 1
14-
%i1 = getelementptr inbounds %struct.A, %struct.A* %a, i64 0, i32 2
15-
%i2 = getelementptr inbounds %struct.A, %struct.A* %a, i64 0, i32 3
16-
%i3 = getelementptr inbounds %struct.A, %struct.A* %a, i64 0, i32 4
17-
%i4 = getelementptr inbounds %struct.A, %struct.A* %a, i64 0, i32 5
18-
%scevgep = getelementptr i8, i8* %input, i64 1
13+
%i = getelementptr inbounds %struct.A, ptr %a, i64 0, i32 1
14+
%i1 = getelementptr inbounds %struct.A, ptr %a, i64 0, i32 2
15+
%i2 = getelementptr inbounds %struct.A, ptr %a, i64 0, i32 3
16+
%i3 = getelementptr inbounds %struct.A, ptr %a, i64 0, i32 4
17+
%i4 = getelementptr inbounds %struct.A, ptr %a, i64 0, i32 5
18+
%scevgep = getelementptr i8, ptr %input, i64 1
1919
br label %.backedge
2020

2121
.backedge: ; preds = %.backedge.backedge, %bb
22-
%lsr.iv = phi i8* [ %scevgep1, %.backedge.backedge ], [ %scevgep, %bb ]
23-
%i5 = load i8, i8* %lsr.iv, align 1
22+
%lsr.iv = phi ptr [ %scevgep1, %.backedge.backedge ], [ %scevgep, %bb ]
23+
%i5 = load i8, ptr %lsr.iv, align 1
2424
%i6 = zext i8 %i5 to i32
2525
switch i32 %i6, label %.backedge.backedge [
2626
i32 0, label %bb7
@@ -32,32 +32,31 @@
3232
]
3333

3434
bb7: ; preds = %.backedge
35-
%i8 = bitcast %struct.A* %a to i32*
36-
tail call void @_Z6assignPj(i32* %i8)
35+
tail call void @_Z6assignPj(ptr %a)
3736
br label %.backedge.backedge
3837

3938
bb9: ; preds = %.backedge
40-
tail call void @_Z6assignPj(i32* %i)
39+
tail call void @_Z6assignPj(ptr %i)
4140
br label %.backedge.backedge
4241

4342
bb10: ; preds = %.backedge
44-
tail call void @_Z6assignPj(i32* %i1)
43+
tail call void @_Z6assignPj(ptr %i1)
4544
br label %.backedge.backedge
4645

4746
bb11: ; preds = %.backedge
48-
tail call void @_Z6assignPj(i32* %i2)
47+
tail call void @_Z6assignPj(ptr %i2)
4948
br label %.backedge.backedge
5049

5150
bb12: ; preds = %.backedge
52-
tail call void @_Z6assignPj(i32* %i3)
51+
tail call void @_Z6assignPj(ptr %i3)
5352
br label %.backedge.backedge
5453

5554
bb13: ; preds = %.backedge
56-
tail call void @_Z6assignPj(i32* %i4)
55+
tail call void @_Z6assignPj(ptr %i4)
5756
br label %.backedge.backedge
5857

5958
.backedge.backedge: ; preds = %bb13, %bb12, %bb11, %bb10, %bb9, %bb7, %.backedge
60-
%scevgep1 = getelementptr i8, i8* %lsr.iv, i64 1
59+
%scevgep1 = getelementptr i8, ptr %lsr.iv, i64 1
6160
br label %.backedge
6261
}
6362

@@ -67,7 +66,7 @@
6766
br i1 %cmp63, label %for.body.preheader, label %for.cond.cleanup
6867

6968
for.body.preheader: ; preds = %entry
70-
%i = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0), align 4
69+
%i = load i32, ptr @A, align 4
7170
%call0 = tail call i32 @use(i32 %n)
7271
br label %for.body
7372

@@ -90,7 +89,7 @@
9089
br i1 %cmp63, label %for.body.preheader, label %for.cond.cleanup
9190

9291
for.body.preheader: ; preds = %entry
93-
%i = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0), align 4
92+
%i = load i32, ptr @A, align 4
9493
%call0 = tail call i32 @use(i32 %i)
9594
br label %for.body
9695

@@ -113,7 +112,7 @@
113112
br i1 %cmp63, label %for.body.preheader, label %for.cond.cleanup
114113

115114
for.body.preheader: ; preds = %entry
116-
%i = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0), align 4
115+
%i = load i32, ptr @A, align 4
117116
br label %for.body
118117

119118
for.cond.cleanup: ; preds = %for.body, %entry
@@ -137,7 +136,7 @@
137136
br i1 %cmp63, label %for.body.preheader, label %for.cond.cleanup
138137

139138
for.body.preheader: ; preds = %entry
140-
%i = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0), align 4
139+
%i = load i32, ptr @A, align 4
141140
br label %for.body
142141

143142
for.cond.cleanup: ; preds = %for.body, %entry
@@ -153,9 +152,9 @@
153152
br i1 %exitcond.not, label %for.cond.cleanup, label %for.body
154153
}
155154

156-
define dso_local void @sink_add(i32* noalias nocapture readonly %read, i32* noalias nocapture %write, i32 %n) local_unnamed_addr {
155+
define dso_local void @sink_add(ptr noalias nocapture readonly %read, ptr noalias nocapture %write, i32 %n) local_unnamed_addr {
157156
entry:
158-
%i = load i32, i32* %read, align 4, !tbaa !0
157+
%i = load i32, ptr %read, align 4, !tbaa !0
159158
%cmp10 = icmp sgt i32 %n, 0
160159
br i1 %cmp10, label %for.body.preheader, label %for.cond.cleanup
161160

@@ -165,7 +164,7 @@
165164

166165
for.cond.cleanup: ; preds = %for.body, %entry
167166
%sum.0.lcssa = phi i32 [ %n, %entry ], [ %div, %for.body ]
168-
store i32 %sum.0.lcssa, i32* %write, align 4, !tbaa !0
167+
store i32 %sum.0.lcssa, ptr %write, align 4, !tbaa !0
169168
ret void
170169

171170
for.body: ; preds = %for.body, %for.body.preheader
@@ -179,20 +178,20 @@
179178
br i1 %exitcond.not, label %for.cond.cleanup, label %for.body
180179
}
181180

182-
define dso_local void @store_after_add(i32* noalias nocapture readonly %read, i32* noalias nocapture %write, i32* nocapture %store, i32 %n) local_unnamed_addr {
181+
define dso_local void @store_after_add(ptr noalias nocapture readonly %read, ptr noalias nocapture %write, ptr nocapture %store, i32 %n) local_unnamed_addr {
183182
entry:
184-
%i = load i32, i32* %read, align 4, !tbaa !0
183+
%i = load i32, ptr %read, align 4, !tbaa !0
185184
%cmp10 = icmp sgt i32 %n, 0
186185
br i1 %cmp10, label %for.body.preheader, label %for.cond.cleanup
187186

188187
for.body.preheader: ; preds = %entry
189188
%i1 = add i32 %i, 42
190-
store i32 43, i32* %store, align 4, !tbaa !0
189+
store i32 43, ptr %store, align 4, !tbaa !0
191190
br label %for.body
192191

193192
for.cond.cleanup: ; preds = %for.body, %entry
194193
%sum.0.lcssa = phi i32 [ %n, %entry ], [ %div, %for.body ]
195-
store i32 %sum.0.lcssa, i32* %write, align 4, !tbaa !0
194+
store i32 %sum.0.lcssa, ptr %write, align 4, !tbaa !0
196195
ret void
197196

198197
for.body: ; preds = %for.body, %for.body.preheader
@@ -206,20 +205,20 @@
206205
br i1 %exitcond.not, label %for.cond.cleanup, label %for.body, !llvm.loop !4
207206
}
208207

209-
define dso_local void @aliased_store_after_add(i32* noalias nocapture readonly %read, i32* noalias nocapture %write, i32* nocapture %store, i32 %n) local_unnamed_addr {
208+
define dso_local void @aliased_store_after_add(ptr noalias nocapture readonly %read, ptr noalias nocapture %write, ptr nocapture %store, i32 %n) local_unnamed_addr {
210209
entry:
211-
%i = load i32, i32* %read, align 4, !tbaa !0
210+
%i = load i32, ptr %read, align 4, !tbaa !0
212211
%cmp10 = icmp sgt i32 %n, 0
213212
br i1 %cmp10, label %for.body.preheader, label %for.cond.cleanup
214213

215214
for.body.preheader: ; preds = %entry
216215
%i1 = add i32 %i, 42
217-
store i32 43, i32* %read, align 4, !tbaa !0
216+
store i32 43, ptr %read, align 4, !tbaa !0
218217
br label %for.body
219218

220219
for.cond.cleanup: ; preds = %for.body, %entry
221220
%sum.0.lcssa = phi i32 [ %n, %entry ], [ %div, %for.body ]
222-
store i32 %sum.0.lcssa, i32* %write, align 4, !tbaa !0
221+
store i32 %sum.0.lcssa, ptr %write, align 4, !tbaa !0
223222
ret void
224223

225224
for.body: ; preds = %for.body, %for.body.preheader
@@ -235,7 +234,7 @@
235234

236235
declare i32 @use(i32)
237236

238-
declare void @_Z6assignPj(i32*)
237+
declare void @_Z6assignPj(ptr)
239238

240239
!0 = !{!1, !1, i64 0}
241240
!1 = !{!"int", !2, i64 0}
@@ -581,7 +580,7 @@ body: |
581580
; CHECK-NEXT: successors: %bb.3(0x80000000)
582581
; CHECK-NEXT: {{ $}}
583582
; CHECK-NEXT: [[ADRP:%[0-9]+]]:gpr64common = ADRP target-flags(aarch64-page) @A
584-
; CHECK-NEXT: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
583+
; CHECK-NEXT: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
585584
; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
586585
; CHECK-NEXT: $w0 = COPY [[COPY]]
587586
; CHECK-NEXT: BL @use, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w0
@@ -617,7 +616,7 @@ body: |
617616
successors: %bb.3(0x80000000)
618617
619618
%8:gpr64common = ADRP target-flags(aarch64-page) @A
620-
%9:gpr32 = LDRWui killed %8, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
619+
%9:gpr32 = LDRWui killed %8, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
621620
ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
622621
$w0 = COPY %6
623622
BL @use, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w0
@@ -708,7 +707,7 @@ body: |
708707
; CHECK-NEXT: successors: %bb.3(0x80000000)
709708
; CHECK-NEXT: {{ $}}
710709
; CHECK-NEXT: [[ADRP:%[0-9]+]]:gpr64common = ADRP target-flags(aarch64-page) @A
711-
; CHECK-NEXT: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
710+
; CHECK-NEXT: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
712711
; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
713712
; CHECK-NEXT: $w0 = COPY [[LDRWui]]
714713
; CHECK-NEXT: BL @use, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w0
@@ -744,7 +743,7 @@ body: |
744743
successors: %bb.3(0x80000000)
745744
746745
%8:gpr64common = ADRP target-flags(aarch64-page) @A
747-
%9:gpr32 = LDRWui killed %8, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
746+
%9:gpr32 = LDRWui killed %8, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
748747
ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
749748
$w0 = COPY %9
750749
BL @use, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w0
@@ -844,7 +843,7 @@ body: |
844843
; CHECK-NEXT: successors: %bb.3(0x80000000)
845844
; CHECK-NEXT: {{ $}}
846845
; CHECK-NEXT: [[ADRP:%[0-9]+]]:gpr64common = ADRP target-flags(aarch64-page) @A
847-
; CHECK-NEXT: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
846+
; CHECK-NEXT: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
848847
; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32all = COPY [[LDRWui]]
849848
; CHECK-NEXT: B %bb.3
850849
; CHECK-NEXT: {{ $}}
@@ -887,7 +886,7 @@ body: |
887886
successors: %bb.3(0x80000000)
888887
889888
%11:gpr64common = ADRP target-flags(aarch64-page) @A
890-
%12:gpr32 = LDRWui killed %11, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
889+
%12:gpr32 = LDRWui killed %11, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
891890
%0:gpr32all = COPY %12
892891
B %bb.3
893892
@@ -978,7 +977,7 @@ body: |
978977
; CHECK-NEXT: successors: %bb.3(0x80000000)
979978
; CHECK-NEXT: {{ $}}
980979
; CHECK-NEXT: [[ADRP:%[0-9]+]]:gpr64common = ADRP target-flags(aarch64-page) @A
981-
; CHECK-NEXT: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
980+
; CHECK-NEXT: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui killed [[ADRP]], target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
982981
; CHECK-NEXT: B %bb.3
983982
; CHECK-NEXT: {{ $}}
984983
; CHECK-NEXT: bb.2.for.cond.cleanup:
@@ -1010,7 +1009,7 @@ body: |
10101009
successors: %bb.3(0x80000000)
10111010
10121011
%8:gpr64common = ADRP target-flags(aarch64-page) @A
1013-
%9:gpr32 = LDRWui killed %8, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from `i32* getelementptr inbounds ([100 x i32], [100 x i32]* @A, i64 0, i64 0)`)
1012+
%9:gpr32 = LDRWui killed %8, target-flags(aarch64-pageoff, aarch64-nc) @A :: (dereferenceable load (s32) from @A)
10141013
B %bb.3
10151014
10161015
bb.2.for.cond.cleanup:

0 commit comments

Comments
 (0)