File: phys-partial-liveness.mir

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-proposed-updates
  • size: 1,998,492 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (69 lines) | stat: -rw-r--r-- 2,207 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx1100 -debug-only=regalloc -verify-machineinstrs -run-pass=liveintervals -o - %s 2>&1 | FileCheck %s
# RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx1100 -debug-only=regalloc --passes='print<live-intervals>' -o - %s 2>&1 | FileCheck %s
# REQUIRES: asserts

# CHECK: Computing live-in reg-units in ABI blocks.
# CHECK: 0B      %bb.0 SGPR16_LO16#0 SGPR16_HI16#0
# CHECK: SGPR16_LO16 [0B,16r:0)[32r,144r:1) 0@0B-phi 1@32r
# CHECK: SGPR16_HI16 [0B,16r:0)[32r,144r:1) 0@0B-phi 1@32r

# CHECK: Computing live-in reg-units in ABI blocks.
# CHECK: 0B      %bb.0 SGPR2_LO16#0 SGPR2_HI16#0 SGPR3_LO16#0 SGPR3_HI16#0 SGPR7_LO16#0 SGPR7_HI16#0
# CHECK: SGPR2_LO16 [0B,64r:0) 0@0B-phi
# CHECK: SGPR2_HI16 [0B,64r:0) 0@0B-phi
# CHECK: SGPR3_LO16 [0B,16r:0)[48r,64r:1) 0@0B-phi 1@48r
# CHECK: SGPR3_HI16 [0B,16r:0)[48r,64r:1) 0@0B-phi 1@48r
# CHECK: SGPR7_LO16 [0B,48r:0) 0@0B-phi
# CHECK: SGPR7_HI16 [0B,48r:0) 0@0B-phi

---
name: phys_reg_partial_liveness_1
tracksRegLiveness: true
body:             |
  bb.0:
    successors: %bb.1
    liveins: $sgpr16

    $sgpr1 = S_AND_B32 3, killed $sgpr16, implicit-def $scc
    $sgpr16 = S_AND_B32 2, killed $sgpr1, implicit-def $scc

  bb.1:
    successors: %bb.2
    liveins: $sgpr16_sgpr17_sgpr18_sgpr19:0x0000000000000003

    $sgpr18 = S_MOV_B32 -1
    $sgpr17 = S_MOV_B32 -2097152000
    $sgpr19 = S_MOV_B32 -2122316801
    renamable $sgpr42 = COPY renamable $sgpr16

  bb.2:
    liveins: $sgpr16_sgpr17_sgpr18_sgpr19:0x00000000000000FF, $sgpr42

    $sgpr2 = S_BUFFER_LOAD_DWORD_IMM $sgpr16_sgpr17_sgpr18_sgpr19, 3780, 0 :: (dereferenceable invariant load (s32))
    $sgpr0 = S_AND_B32 $sgpr42, $sgpr2, implicit-def $scc
    S_ENDPGM 0, implicit $sgpr0
...

---
name: phys_reg_partial_liveness_2
tracksRegLiveness: true
body:             |
  bb.0:
    successors: %bb.1
    liveins: $sgpr2, $sgpr3, $sgpr7

    $sgpr1 = S_AND_B32 1, killed $sgpr3, implicit-def $scc

  bb.1:
    successors: %bb.2
    liveins: $sgpr2_sgpr3:0x0000000000000003, $sgpr7

    $sgpr3 = COPY $sgpr7
    $sgpr0 = S_LOAD_DWORD_IMM $sgpr2_sgpr3, 0, 0 :: (dereferenceable invariant load (s32))

  bb.2:
    liveins: $sgpr0

    S_ENDPGM 0, implicit $sgpr0
...