18
18
define i32 @foo2(i32 %a, i32 %b) comdat { ret i32 0 }
19
19
20
20
define i32 @foo3(i32 %a, i32 %b) section ".abc" { ret i32 0 }
21
+
22
+ define i32 @foo4(i32 %a, i32 %b) !section_prefix !0 { ret i32 0 }
23
+ !0 = !{!"function_section_prefix", !"myprefix"}
21
24
...
22
25
---
23
26
name : foo
@@ -27,23 +30,24 @@ body: |
27
30
; CHECK: bb.0:
28
31
; CHECK-NEXT: liveins: $x10, $x11, $x13
29
32
; CHECK-NEXT: {{ $}}
30
- ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
33
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
31
34
; CHECK-NEXT: PseudoBR %bb.3
32
35
; CHECK-NEXT: {{ $}}
33
36
; CHECK-NEXT: bb.1:
34
37
; CHECK-NEXT: liveins: $x10, $x11, $x13
35
38
; CHECK-NEXT: {{ $}}
36
- ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
39
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
37
40
; CHECK-NEXT: PseudoBR %bb.3
38
41
; CHECK-NEXT: {{ $}}
39
42
; CHECK-NEXT: bb.2:
40
43
; CHECK-NEXT: liveins: $x10, $x11, $x13
41
44
; CHECK-NEXT: {{ $}}
42
- ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
45
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
43
46
; CHECK-NEXT: PseudoBR %bb.3
44
47
; CHECK-NEXT: {{ $}}
45
48
; CHECK-NEXT: bb.3:
46
49
; CHECK-NEXT: PseudoRET
50
+ ;
47
51
; CHECK-FS-LABEL: name: foo
48
52
; CHECK-FS: bb.0:
49
53
; CHECK-FS-NEXT: liveins: $x10, $x11, $x13
@@ -109,26 +113,27 @@ body: |
109
113
; CHECK: bb.0:
110
114
; CHECK-NEXT: liveins: $x10, $x11, $x13
111
115
; CHECK-NEXT: {{ $}}
112
- ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
116
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
113
117
; CHECK-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
114
118
; CHECK-NEXT: PseudoBR %bb.3
115
119
; CHECK-NEXT: {{ $}}
116
120
; CHECK-NEXT: bb.1:
117
121
; CHECK-NEXT: liveins: $x10, $x11, $x13
118
122
; CHECK-NEXT: {{ $}}
119
- ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
123
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
120
124
; CHECK-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
121
125
; CHECK-NEXT: PseudoBR %bb.3
122
126
; CHECK-NEXT: {{ $}}
123
127
; CHECK-NEXT: bb.2:
124
128
; CHECK-NEXT: liveins: $x10, $x11, $x13
125
129
; CHECK-NEXT: {{ $}}
126
- ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
130
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0 , implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
127
131
; CHECK-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
128
132
; CHECK-NEXT: PseudoBR %bb.3
129
133
; CHECK-NEXT: {{ $}}
130
134
; CHECK-NEXT: bb.3:
131
135
; CHECK-NEXT: PseudoRET
136
+ ;
132
137
; CHECK-FS-LABEL: name: foo2
133
138
; CHECK-FS: bb.0:
134
139
; CHECK-FS-NEXT: liveins: $x10, $x11, $x13
@@ -223,6 +228,7 @@ body: |
223
228
; CHECK-NEXT: {{ $}}
224
229
; CHECK-NEXT: bb.3:
225
230
; CHECK-NEXT: PseudoRET
231
+ ;
226
232
; CHECK-FS-LABEL: name: foo3
227
233
; CHECK-FS: bb.0:
228
234
; CHECK-FS-NEXT: liveins: $x10, $x11, $x13
@@ -289,3 +295,89 @@ body: |
289
295
bb.3:
290
296
PseudoRET
291
297
...
298
+ ---
299
+ name : foo4
300
+ tracksRegLiveness : true
301
+ body : |
302
+ ; CHECK-LABEL: name: foo4
303
+ ; CHECK: bb.0:
304
+ ; CHECK-NEXT: liveins: $x10, $x11, $x13
305
+ ; CHECK-NEXT: {{ $}}
306
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
307
+ ; CHECK-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
308
+ ; CHECK-NEXT: PseudoBR %bb.3
309
+ ; CHECK-NEXT: {{ $}}
310
+ ; CHECK-NEXT: bb.1:
311
+ ; CHECK-NEXT: liveins: $x10, $x11, $x13
312
+ ; CHECK-NEXT: {{ $}}
313
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
314
+ ; CHECK-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
315
+ ; CHECK-NEXT: PseudoBR %bb.3
316
+ ; CHECK-NEXT: {{ $}}
317
+ ; CHECK-NEXT: bb.2:
318
+ ; CHECK-NEXT: liveins: $x10, $x11, $x13
319
+ ; CHECK-NEXT: {{ $}}
320
+ ; CHECK-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
321
+ ; CHECK-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
322
+ ; CHECK-NEXT: PseudoBR %bb.3
323
+ ; CHECK-NEXT: {{ $}}
324
+ ; CHECK-NEXT: bb.3:
325
+ ; CHECK-NEXT: PseudoRET
326
+ ;
327
+ ; CHECK-FS-LABEL: name: foo4
328
+ ; CHECK-FS: bb.0:
329
+ ; CHECK-FS-NEXT: liveins: $x10, $x11, $x13
330
+ ; CHECK-FS-NEXT: {{ $}}
331
+ ; CHECK-FS-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
332
+ ; CHECK-FS-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
333
+ ; CHECK-FS-NEXT: PseudoBR %bb.3
334
+ ; CHECK-FS-NEXT: {{ $}}
335
+ ; CHECK-FS-NEXT: bb.1:
336
+ ; CHECK-FS-NEXT: liveins: $x10, $x11, $x13
337
+ ; CHECK-FS-NEXT: {{ $}}
338
+ ; CHECK-FS-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
339
+ ; CHECK-FS-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
340
+ ; CHECK-FS-NEXT: PseudoBR %bb.3
341
+ ; CHECK-FS-NEXT: {{ $}}
342
+ ; CHECK-FS-NEXT: bb.2:
343
+ ; CHECK-FS-NEXT: liveins: $x10, $x11, $x13
344
+ ; CHECK-FS-NEXT: {{ $}}
345
+ ; CHECK-FS-NEXT: $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
346
+ ; CHECK-FS-NEXT: $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
347
+ ; CHECK-FS-NEXT: PseudoBR %bb.3
348
+ ; CHECK-FS-NEXT: {{ $}}
349
+ ; CHECK-FS-NEXT: bb.3:
350
+ ; CHECK-FS-NEXT: PseudoRET
351
+ bb.0:
352
+ liveins: $x10, $x11, $x13
353
+
354
+ $x11 = ORI $x11, 1023
355
+ $x12 = ADDI $x10, 17
356
+ $x11 = AND $x12, $x11
357
+ $x10 = SUB $x10, $x11
358
+ $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
359
+ PseudoBR %bb.3
360
+
361
+ bb.1:
362
+ liveins: $x10, $x11, $x13
363
+
364
+ $x11 = ORI $x11, 1023
365
+ $x12 = ADDI $x10, 17
366
+ $x11 = AND $x12, $x11
367
+ $x10 = SUB $x10, $x11
368
+ $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
369
+ PseudoBR %bb.3
370
+
371
+ bb.2:
372
+ liveins: $x10, $x11, $x13
373
+
374
+ $x11 = ORI $x11, 1023
375
+ $x12 = ADDI $x10, 17
376
+ $x11 = AND $x12, $x11
377
+ $x10 = SUB $x10, $x11
378
+ $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
379
+ PseudoBR %bb.3
380
+
381
+ bb.3:
382
+ PseudoRET
383
+ ...
0 commit comments