File: vgpr-blocks-funcinfo.mir

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.6-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,245,028 kB
  • sloc: cpp: 7,619,726; ansic: 1,434,018; asm: 1,058,748; python: 252,740; f90: 94,671; objc: 70,685; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,675; awk: 3,523; javascript: 2,409; xml: 892; fortran: 770
file content (47 lines) | stat: -rw-r--r-- 2,864 bytes parent folder | download | duplicates (3)
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
# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+block-vgpr-csr -start-before=si-lower-sgpr-spills -stop-after=prologepilog -verify-machineinstrs -o - %s | FileCheck %s

# The spill slot for the VGPR block needs to hold v40 and v43, so it needs to be
# 16 bytes large.
---
name: locals
tracksRegLiveness: true
machineFunctionInfo:
  stackPtrOffsetReg: $sgpr32
stack:
- { id: 0, type: default, offset: 0, size: 12, alignment: 4,
    stack-id: default, callee-saved-register: '', callee-saved-restored: true,
    local-offset: 0, debug-info-variable: '', debug-info-expression: '',
    debug-info-location: '' }
- { id: 1, type: default, offset: 12, size: 20, alignment: 4,
    stack-id: default, callee-saved-register: '', callee-saved-restored: true,
    local-offset: 0, debug-info-variable: '', debug-info-expression: '',
    debug-info-location: '' }
# CHECK-LABEL: name: locals
# CHECK: frameInfo:
# CHECK: stackSize: 52
# CHECK: stack:
# CHECK-NEXT:   - { id: 0, name: '', type: default, offset: 16, size: 12, alignment: 4,
# CHECK-NEXT:       stack-id: default, callee-saved-register: '', callee-saved-restored: true,
# CHECK-NEXT:       local-offset: 0, debug-info-variable: '', debug-info-expression: '',
# CHECK-NEXT:       debug-info-location: '' }
# CHECK-NEXT:   - { id: 1, name: '', type: default, offset: 28, size: 20, alignment: 4,
# CHECK-NEXT:       stack-id: default, callee-saved-register: '', callee-saved-restored: true,
# CHECK-NEXT:       local-offset: 0, debug-info-variable: '', debug-info-expression: '',
# CHECK-NEXT:       debug-info-location: '' }
# CHECK-NEXT:   - { id: 2, name: '', type: spill-slot, offset: 0, size: 16, alignment: 4,
# CHECK-NEXT:       stack-id: default, callee-saved-register: '$vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71',
# CHECK-NEXT:       callee-saved-restored: true, debug-info-variable: '', debug-info-expression: '',
# CHECK-NEXT:       debug-info-location: '' }
# CHECK-NEXT:   - { id: 3, name: '', type: default, offset: 48, size: 4, alignment: 4,
# CHECK-NEXT:       stack-id: default, callee-saved-register: '', callee-saved-restored: true,
# CHECK-NEXT:       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
# CHECK: machineFunctionInfo:
# CHECK: hasSpilledVGPRs: true
body: |
  bb.0:
    liveins: $sgpr30_sgpr31, $vgpr48
    SCRATCH_STORE_DWORD_SADDR $vgpr48, %stack.0, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
    SCRATCH_STORE_DWORD_SADDR $vgpr48, %stack.1, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5)
    S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr43
    S_SETPC_B64_return $sgpr30_sgpr31
...