Skip to content

Commit 4046e8e

Browse files
committed
outlining order by benefit-to-cost ratio
1 parent 83de21d commit 4046e8e

6 files changed

+194
-151
lines changed

llvm/lib/CodeGen/MachineOutliner.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -828,10 +828,12 @@ bool MachineOutliner::outline(Module &M,
828828
<< "\n");
829829
bool OutlinedSomething = false;
830830

831-
// Sort by benefit. The most beneficial functions should be outlined first.
831+
// Sort by priority where priority := getNotOutlinedCost / getOutliningCost.
832+
// The function with highest priority should be outlined first.
832833
stable_sort(FunctionList,
833834
[](const OutlinedFunction &LHS, const OutlinedFunction &RHS) {
834-
return LHS.getBenefit() > RHS.getBenefit();
835+
return LHS.getNotOutlinedCost() * RHS.getOutliningCost() >
836+
RHS.getNotOutlinedCost() * LHS.getOutliningCost();
835837
});
836838

837839
// Walk over each function, outlining them as we go along. Functions are
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
; This tests the order in which functions are outlined in MachineOutliner
2+
; There are TWO key OutlinedFunction in FunctionList
3+
;
4+
; ===================== First One =====================
5+
; ```
6+
; mov w0, #1
7+
; mov w1, #2
8+
; mov w2, #3
9+
; mov w3, #4
10+
; mov w4, #5
11+
; ```
12+
; It has:
13+
; - `SequenceSize=20` and `OccurrenceCount=6`
14+
; - each Candidate has `CallOverhead=12` and `FrameOverhead=4`
15+
; - `NotOutlinedCost=20*6=120` and `OutliningCost=12*6+20+4=96`
16+
; - `Benefit=120-96=24` and `Priority=120/96=1.25`
17+
;
18+
; ===================== Second One =====================
19+
; ```
20+
; mov w6, #6
21+
; mov w7, #7
22+
; b
23+
; ```
24+
; It has:
25+
; - `SequenceSize=12` and `OccurrenceCount=4`
26+
; - each Candidate has `CallOverhead=4` and `FrameOverhead=0`
27+
; - `NotOutlinedCost=12*4=48` and `OutliningCost=4*4+12+0=28`
28+
; - `Benefit=120-96=20` and `Priority=48/28=1.71`
29+
;
30+
; Note that the first one has higher benefit, but lower priority.
31+
; Hence, when outlining per priority, the second one will be outlined first.
32+
33+
; RUN: llc %s -enable-machine-outliner=always -filetype=obj -o %t
34+
; RUN: llvm-objdump -d %t | FileCheck %s --check-prefix=CHECK-SORT-BY-PRIORITY
35+
36+
; RUN: llc %s -enable-machine-outliner=always -outliner-benefit-threshold=22 -filetype=obj -o %t
37+
; RUN: llvm-objdump -d %t | FileCheck %s --check-prefix=CHECK-THRESHOLD
38+
39+
40+
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
41+
target triple = "arm64-apple-macosx14.0.0"
42+
43+
declare i32 @_Z3fooiiii(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef)
44+
45+
define i32 @_Z2f1v() minsize {
46+
%1 = tail call i32 @_Z3fooiiii(i32 noundef 1, i32 noundef 2, i32 noundef 3, i32 noundef 4, i32 noundef 5, i32 noundef 11, i32 noundef 6, i32 noundef 7)
47+
ret i32 %1
48+
}
49+
50+
define i32 @_Z2f2v() minsize {
51+
%1 = tail call i32 @_Z3fooiiii(i32 noundef 1, i32 noundef 2, i32 noundef 3, i32 noundef 4, i32 noundef 5, i32 noundef 12, i32 noundef 6, i32 noundef 7)
52+
ret i32 %1
53+
}
54+
55+
define i32 @_Z2f3v() minsize {
56+
%1 = tail call i32 @_Z3fooiiii(i32 noundef 1, i32 noundef 2, i32 noundef 3, i32 noundef 4, i32 noundef 5, i32 noundef 13, i32 noundef 6, i32 noundef 7)
57+
ret i32 %1
58+
}
59+
60+
define i32 @_Z2f4v() minsize {
61+
%1 = tail call i32 @_Z3fooiiii(i32 noundef 1, i32 noundef 2, i32 noundef 3, i32 noundef 4, i32 noundef 5, i32 noundef 14, i32 noundef 6, i32 noundef 7)
62+
ret i32 %1
63+
}
64+
65+
define i32 @_Z2f5v() minsize {
66+
%1 = tail call i32 @_Z3fooiiii(i32 noundef 1, i32 noundef 2, i32 noundef 3, i32 noundef 4, i32 noundef 5, i32 noundef 15, i32 noundef 8, i32 noundef 9)
67+
ret i32 %1
68+
}
69+
70+
define i32 @_Z2f6v() minsize {
71+
%1 = tail call i32 @_Z3fooiiii(i32 noundef 1, i32 noundef 2, i32 noundef 3, i32 noundef 4, i32 noundef 5, i32 noundef 16, i32 noundef 9, i32 noundef 8)
72+
ret i32 %1
73+
}
74+
75+
; CHECK-SORT-BY-PRIORITY: <_OUTLINED_FUNCTION_0>:
76+
; CHECK-SORT-BY-PRIORITY-NEXT: mov w6, #0x6
77+
; CHECK-SORT-BY-PRIORITY-NEXT: mov w7, #0x7
78+
; CHECK-SORT-BY-PRIORITY-NEXT: b
79+
80+
; CHECK-SORT-BY-PRIORITY: <_OUTLINED_FUNCTION_1>:
81+
; CHECK-SORT-BY-PRIORITY-NEXT: mov w0, #0x1
82+
; CHECK-SORT-BY-PRIORITY-NEXT: mov w1, #0x2
83+
; CHECK-SORT-BY-PRIORITY-NEXT: mov w2, #0x3
84+
; CHECK-SORT-BY-PRIORITY-NEXT: mov w3, #0x4
85+
; CHECK-SORT-BY-PRIORITY-NEXT: mov w4, #0x5
86+
; CHECK-SORT-BY-PRIORITY-NEXT: ret
87+
88+
; CHECK-THRESHOLD: <_OUTLINED_FUNCTION_0>:
89+
; CHECK-THRESHOLD-NEXT: mov w0, #0x1
90+
; CHECK-THRESHOLD-NEXT: mov w1, #0x2
91+
; CHECK-THRESHOLD-NEXT: mov w2, #0x3
92+
; CHECK-THRESHOLD-NEXT: mov w3, #0x4
93+
; CHECK-THRESHOLD-NEXT: mov w4, #0x5
94+
; CHECK-THRESHOLD-NEXT: ret
95+
96+
; CHECK-THRESHOLD-NOT: <_OUTLINED_FUNCTION_1>:

llvm/test/CodeGen/ARM/machine-outliner-calls.mir

Lines changed: 28 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ body: |
2626
; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 8
2727
; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -4
2828
; CHECK: frame-setup CFI_INSTRUCTION offset $r4, -8
29-
; CHECK: BL @OUTLINED_FUNCTION_0
29+
; CHECK: BL @OUTLINED_FUNCTION_2
3030
; CHECK: bb.1:
31-
; CHECK: BL @OUTLINED_FUNCTION_0
31+
; CHECK: BL @OUTLINED_FUNCTION_2
3232
; CHECK: bb.2:
33-
; CHECK: BL @OUTLINED_FUNCTION_0
33+
; CHECK: BL @OUTLINED_FUNCTION_2
3434
; CHECK: bb.3:
35-
; CHECK: BL @OUTLINED_FUNCTION_0
35+
; CHECK: BL @OUTLINED_FUNCTION_2
3636
; CHECK: bb.4:
37-
; CHECK: BL @OUTLINED_FUNCTION_0
37+
; CHECK: BL @OUTLINED_FUNCTION_2
3838
; CHECK: bb.5:
3939
; CHECK: $sp = frame-destroy LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r4, def $lr
4040
; CHECK: BX_RET 14 /* CC::al */, $noreg
@@ -139,13 +139,13 @@ body: |
139139
; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 8
140140
; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -4
141141
; CHECK: frame-setup CFI_INSTRUCTION offset $r4, -8
142-
; CHECK: BL @OUTLINED_FUNCTION_1
142+
; CHECK: BL @OUTLINED_FUNCTION_0
143143
; CHECK: bb.1:
144-
; CHECK: BL @OUTLINED_FUNCTION_1
144+
; CHECK: BL @OUTLINED_FUNCTION_0
145145
; CHECK: bb.2:
146-
; CHECK: BL @OUTLINED_FUNCTION_1
146+
; CHECK: BL @OUTLINED_FUNCTION_0
147147
; CHECK: bb.3:
148-
; CHECK: BL @OUTLINED_FUNCTION_1
148+
; CHECK: BL @OUTLINED_FUNCTION_0
149149
; CHECK: bb.4:
150150
; CHECK: $sp = frame-destroy LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r4, def $lr
151151
; CHECK: BX_RET 14 /* CC::al */, $noreg
@@ -245,19 +245,19 @@ body: |
245245
; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -4
246246
; CHECK: frame-setup CFI_INSTRUCTION offset $r4, -8
247247
; CHECK: BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp
248-
; CHECK: BL @OUTLINED_FUNCTION_2
248+
; CHECK: BL @OUTLINED_FUNCTION_1
249249
; CHECK: bb.1:
250250
; CHECK: BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp
251-
; CHECK: BL @OUTLINED_FUNCTION_2
251+
; CHECK: BL @OUTLINED_FUNCTION_1
252252
; CHECK: bb.2:
253253
; CHECK: BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp
254-
; CHECK: BL @OUTLINED_FUNCTION_2
254+
; CHECK: BL @OUTLINED_FUNCTION_1
255255
; CHECK: bb.3:
256256
; CHECK: BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp
257-
; CHECK: BL @OUTLINED_FUNCTION_2
257+
; CHECK: BL @OUTLINED_FUNCTION_1
258258
; CHECK: bb.4:
259259
; CHECK: BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp
260-
; CHECK: BL @OUTLINED_FUNCTION_2
260+
; CHECK: BL @OUTLINED_FUNCTION_1
261261
; CHECK: bb.5:
262262
; CHECK: $sp = frame-destroy LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r4, def $lr
263263
; CHECK: BX_RET 14 /* CC::al */, $noreg
@@ -307,38 +307,17 @@ body: |
307307
bb.0:
308308
BX_RET 14, $noreg
309309
310-
311310
; CHECK-LABEL: name: OUTLINED_FUNCTION_0
312311
; CHECK: bb.0:
313-
; CHECK: liveins: $r11, $r10, $r9, $r8, $r7, $r6, $r5, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8, $lr
314-
; CHECK: early-clobber $sp = frame-setup STR_PRE_IMM killed $lr, $sp, -8, 14 /* CC::al */, $noreg
315-
; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 8
316-
; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -8
317-
; CHECK: BL @bar, implicit-def dead $lr, implicit $sp
318-
; CHECK: $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
319-
; CHECK: $r1 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
320-
; CHECK: $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
321-
; CHECK: $r3 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
322-
; CHECK: $r4 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
323-
; CHECK: $lr, $sp = frame-destroy LDR_POST_IMM $sp, $noreg, 8, 14 /* CC::al */, $noreg
324-
; CHECK: MOVPCLR 14 /* CC::al */, $noreg
325-
326-
; CHECK-LABEL: name: OUTLINED_FUNCTION_1
327-
; CHECK: bb.0:
328-
; CHECK: liveins: $r11, $r10, $r9, $r8, $r7, $r6, $r5, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8, $lr
329-
; CHECK: early-clobber $sp = frame-setup STR_PRE_IMM killed $lr, $sp, -8, 14 /* CC::al */, $noreg
330-
; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 8
331-
; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -8
332-
; CHECK: BL @bar, implicit-def dead $lr, implicit $sp
312+
; CHECK: liveins: $r11, $r10, $r9, $r8, $r7, $r6, $r5, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8
333313
; CHECK: $r0 = MOVi 2, 14 /* CC::al */, $noreg, $noreg
334314
; CHECK: $r1 = MOVi 2, 14 /* CC::al */, $noreg, $noreg
335315
; CHECK: $r2 = MOVi 2, 14 /* CC::al */, $noreg, $noreg
336316
; CHECK: $r3 = MOVi 2, 14 /* CC::al */, $noreg, $noreg
337317
; CHECK: $r4 = MOVi 2, 14 /* CC::al */, $noreg, $noreg
338-
; CHECK: $lr, $sp = frame-destroy LDR_POST_IMM $sp, $noreg, 8, 14 /* CC::al */, $noreg
339318
; CHECK: TAILJMPd @bar, implicit $sp
340319
341-
; CHECK-LABEL: name: OUTLINED_FUNCTION_2
320+
; CHECK-LABEL: name: OUTLINED_FUNCTION_1
342321
; CHECK: bb.0:
343322
; CHECK: liveins: $r11, $r10, $r9, $r8, $r7, $r6, $r5, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8
344323
; CHECK: $r0 = MOVi 3, 14 /* CC::al */, $noreg, $noreg
@@ -348,31 +327,28 @@ body: |
348327
; CHECK: $r4 = MOVi 3, 14 /* CC::al */, $noreg, $noreg
349328
; CHECK: MOVPCLR 14 /* CC::al */, $noreg
350329
330+
; CHECK-LABEL: name: OUTLINED_FUNCTION_2
331+
; CHECK: bb.0:
332+
; CHECK: liveins: $r11, $r10, $r9, $r8, $r7, $r6, $r5, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8
333+
; CHECK: $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
334+
; CHECK: $r1 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
335+
; CHECK: $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
336+
; CHECK: $r3 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
337+
; CHECK: $r4 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
338+
; CHECK: MOVPCLR 14 /* CC::al */, $noreg
339+
351340
; CHECK-LABEL: name: OUTLINED_FUNCTION_3
352341
; CHECK: bb.0:
353-
; CHECK: liveins: $r11, $r10, $r9, $r8, $r6, $r5, $r4, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8, $lr
354-
; CHECK: early-clobber $sp = frame-setup t2STR_PRE killed $lr, $sp, -8, 14 /* CC::al */, $noreg
355-
; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 8
356-
; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -8
357-
; CHECK: tBL 14 /* CC::al */, $noreg, @bar, implicit-def dead $lr, implicit $sp
342+
; CHECK: liveins: $r11, $r10, $r9, $r8, $r6, $r5, $r4, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8
358343
; CHECK: $r0 = t2MOVi 2, 14 /* CC::al */, $noreg, $noreg
359344
; CHECK: $r1 = t2MOVi 2, 14 /* CC::al */, $noreg, $noreg
360345
; CHECK: $r2 = t2MOVi 2, 14 /* CC::al */, $noreg, $noreg
361-
; CHECK: $lr, $sp = frame-destroy t2LDR_POST $sp, 8, 14 /* CC::al */, $noreg
362346
; CHECK: tTAILJMPdND @bar, 14 /* CC::al */, $noreg, implicit $sp
363347
364348
; CHECK-LABEL: name: OUTLINED_FUNCTION_4
365349
; CHECK: bb.0:
366-
; CHECK: liveins: $r11, $r10, $r9, $r8, $r6, $r5, $r4, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8, $lr
367-
; CHECK: early-clobber $sp = frame-setup t2STR_PRE killed $lr, $sp, -8, 14 /* CC::al */, $noreg
368-
; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 8
369-
; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -8
370-
; CHECK: tBL 14 /* CC::al */, $noreg, @bar, implicit-def dead $lr, implicit $sp
350+
; CHECK: liveins: $r11, $r10, $r9, $r8, $r6, $r5, $r4, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8
371351
; CHECK: $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
372352
; CHECK: $r1 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
373353
; CHECK: $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
374-
; CHECK: $lr, $sp = frame-destroy t2LDR_POST $sp, 8, 14 /* CC::al */, $noreg
375354
; CHECK: tBX_RET 14 /* CC::al */, $noreg
376-
377-
378-

llvm/test/CodeGen/ARM/machine-outliner-default.mir

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ body: |
1919
; CHECK: bb.0:
2020
; CHECK: liveins: $lr
2121
; CHECK: early-clobber $sp = frame-setup STR_PRE_IMM killed $lr, $sp, -8, 14 /* CC::al */, $noreg
22-
; CHECK: BL @OUTLINED_FUNCTION_0
22+
; CHECK: BL @OUTLINED_FUNCTION_1
2323
; CHECK: $lr, $sp = frame-destroy LDR_POST_IMM $sp, $noreg, 8, 14 /* CC::al */, $noreg
2424
; CHECK: bb.1:
2525
; CHECK: liveins: $lr, $r6, $r7, $r8, $r9, $r10, $r11
2626
; CHECK: early-clobber $sp = frame-setup STR_PRE_IMM killed $lr, $sp, -8, 14 /* CC::al */, $noreg
27-
; CHECK: BL @OUTLINED_FUNCTION_0
27+
; CHECK: BL @OUTLINED_FUNCTION_1
2828
; CHECK: $lr, $sp = frame-destroy LDR_POST_IMM $sp, $noreg, 8, 14 /* CC::al */, $noreg
2929
; CHECK: bb.2:
3030
; CHECK: liveins: $lr, $r6, $r7, $r8, $r9, $r10, $r11
3131
; CHECK: early-clobber $sp = frame-setup STR_PRE_IMM killed $lr, $sp, -8, 14 /* CC::al */, $noreg
32-
; CHECK: BL @OUTLINED_FUNCTION_0
32+
; CHECK: BL @OUTLINED_FUNCTION_1
3333
; CHECK: $lr, $sp = frame-destroy LDR_POST_IMM $sp, $noreg, 8, 14 /* CC::al */, $noreg
3434
; CHECK: bb.3:
3535
; CHECK: liveins: $lr, $r6, $r7, $r8, $r9, $r10, $r11
@@ -73,17 +73,17 @@ body: |
7373
; CHECK: bb.0:
7474
; CHECK: liveins: $lr
7575
; CHECK: early-clobber $sp = frame-setup t2STR_PRE killed $lr, $sp, -8, 14 /* CC::al */, $noreg
76-
; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_1
76+
; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0
7777
; CHECK: $lr, $sp = frame-destroy t2LDR_POST $sp, 8, 14 /* CC::al */, $noreg
7878
; CHECK: bb.1:
7979
; CHECK: liveins: $lr, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11
8080
; CHECK: early-clobber $sp = frame-setup t2STR_PRE killed $lr, $sp, -8, 14 /* CC::al */, $noreg
81-
; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_1
81+
; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0
8282
; CHECK: $lr, $sp = frame-destroy t2LDR_POST $sp, 8, 14 /* CC::al */, $noreg
8383
; CHECK: bb.2:
8484
; CHECK: liveins: $lr, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11
8585
; CHECK: early-clobber $sp = frame-setup t2STR_PRE killed $lr, $sp, -8, 14 /* CC::al */, $noreg
86-
; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_1
86+
; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0
8787
; CHECK: $lr, $sp = frame-destroy t2LDR_POST $sp, 8, 14 /* CC::al */, $noreg
8888
; CHECK: bb.3:
8989
; CHECK: liveins: $lr, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11
@@ -114,6 +114,15 @@ body: |
114114
115115
; CHECK-LABEL: name: OUTLINED_FUNCTION_0
116116
; CHECK: bb.0:
117+
; CHECK: liveins: $lr, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11
118+
; CHECK: $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
119+
; CHECK: $r1 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
120+
; CHECK: $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
121+
; CHECK: $r3 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
122+
; CHECK: tBX_RET 14 /* CC::al */, $noreg
123+
124+
; CHECK-LABEL: name: OUTLINED_FUNCTION_1
125+
; CHECK: bb.0:
117126
; CHECK: liveins: $lr, $r6, $r7, $r8, $r9, $r10, $r11
118127
; CHECK: $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
119128
; CHECK: $r1 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
@@ -122,15 +131,3 @@ body: |
122131
; CHECK: $r4 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
123132
; CHECK: $r5 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
124133
; CHECK: MOVPCLR 14 /* CC::al */, $noreg
125-
126-
; CHECK-LABEL: name: OUTLINED_FUNCTION_1
127-
; CHECK: bb.0:
128-
; CHECK: liveins: $lr, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11
129-
; CHECK: $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
130-
; CHECK: $r1 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
131-
; CHECK: $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
132-
; CHECK: $r3 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
133-
; CHECK: tBX_RET 14 /* CC::al */, $noreg
134-
135-
136-

0 commit comments

Comments
 (0)