addi sp, sp, 512 may be used to recover the sp in the epilogue when stack size is larger than 2047(2^11 - 1), however, it can not be compressed using C extension, and addi sp, sp, 496 is able to be compressed, so try to use 496 as the ajust amount of the fisrt sp if function doesn't need extra instructions after adjust. Reviewed By: wangpc Differential Revision: https://reviews.llvm.org/D159431
308 lines
16 KiB
YAML
308 lines
16 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 2
|
|
# RUN: llc -march=riscv32 -x mir -run-pass=prologepilog -verify-machineinstrs < %s \
|
|
# RUN: | FileCheck -check-prefixes=CHECK-RV32-NO-COM %s
|
|
# RUN: llc -march=riscv32 -mattr=+c -x mir -run-pass=prologepilog \
|
|
# RUN: -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK-RV32-COM %s
|
|
# RUN: llc -march=riscv64 -x mir -run-pass=prologepilog -verify-machineinstrs < %s \
|
|
# RUN: | FileCheck -check-prefixes=CHECK-RV64-NO-COM %s
|
|
# RUN: llc -march=riscv64 -mattr=+c -x mir -run-pass=prologepilog \
|
|
# RUN: -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK-RV64-COM %s
|
|
--- |
|
|
define dso_local void @_Z15stack_size_2048v() {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
declare dso_local void @_Z6calleePi(ptr noundef)
|
|
|
|
define dso_local void @_Z15stack_size_4096v() {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
define dso_local void @_Z15stack_size_8192v() {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
...
|
|
---
|
|
name: _Z15stack_size_2048v
|
|
alignment: 2
|
|
tracksRegLiveness: true
|
|
frameInfo:
|
|
maxAlignment: 4
|
|
hasCalls: true
|
|
localFrameSize: 2048
|
|
stack:
|
|
- { id: 0, size: 2048, alignment: 4, local-offset: -2048 }
|
|
machineFunctionInfo:
|
|
varArgsFrameIndex: 0
|
|
varArgsSaveSize: 0
|
|
body: |
|
|
bb.0.entry:
|
|
; CHECK-RV32-NO-COM-LABEL: name: _Z15stack_size_2048v
|
|
; CHECK-RV32-NO-COM: liveins: $x1
|
|
; CHECK-RV32-NO-COM-NEXT: {{ $}}
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -2032
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2032
|
|
; CHECK-RV32-NO-COM-NEXT: SW killed $x1, $x2, 2028 :: (store (s32) into %stack.1)
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -32
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2064
|
|
; CHECK-RV32-NO-COM-NEXT: renamable $x10 = ADDI $x2, 12
|
|
; CHECK-RV32-NO-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 32
|
|
; CHECK-RV32-NO-COM-NEXT: $x1 = LW $x2, 2028 :: (load (s32) from %stack.1)
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV32-NO-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV32-COM-LABEL: name: _Z15stack_size_2048v
|
|
; CHECK-RV32-COM: liveins: $x1
|
|
; CHECK-RV32-COM-NEXT: {{ $}}
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-setup ADDI $x2, -256
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 256
|
|
; CHECK-RV32-COM-NEXT: SW killed $x1, $x2, 252 :: (store (s32) into %stack.1)
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-setup ADDI $x2, -1808
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2064
|
|
; CHECK-RV32-COM-NEXT: renamable $x10 = ADDI $x2, 12
|
|
; CHECK-RV32-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-destroy ADDI $x2, 1808
|
|
; CHECK-RV32-COM-NEXT: $x1 = LW $x2, 252 :: (load (s32) from %stack.1)
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-destroy ADDI $x2, 256
|
|
; CHECK-RV32-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV64-NO-COM-LABEL: name: _Z15stack_size_2048v
|
|
; CHECK-RV64-NO-COM: liveins: $x1
|
|
; CHECK-RV64-NO-COM-NEXT: {{ $}}
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -2032
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2032
|
|
; CHECK-RV64-NO-COM-NEXT: SD killed $x1, $x2, 2024 :: (store (s64) into %stack.1)
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -32
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2064
|
|
; CHECK-RV64-NO-COM-NEXT: renamable $x10 = ADDI $x2, 8
|
|
; CHECK-RV64-NO-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 32
|
|
; CHECK-RV64-NO-COM-NEXT: $x1 = LD $x2, 2024 :: (load (s64) from %stack.1)
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV64-NO-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV64-COM-LABEL: name: _Z15stack_size_2048v
|
|
; CHECK-RV64-COM: liveins: $x1
|
|
; CHECK-RV64-COM-NEXT: {{ $}}
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-setup ADDI $x2, -496
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 496
|
|
; CHECK-RV64-COM-NEXT: SD killed $x1, $x2, 488 :: (store (s64) into %stack.1)
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-setup ADDI $x2, -1568
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2064
|
|
; CHECK-RV64-COM-NEXT: renamable $x10 = ADDI $x2, 8
|
|
; CHECK-RV64-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-destroy ADDI $x2, 1568
|
|
; CHECK-RV64-COM-NEXT: $x1 = LD $x2, 488 :: (load (s64) from %stack.1)
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-destroy ADDI $x2, 496
|
|
; CHECK-RV64-COM-NEXT: PseudoRET
|
|
ADJCALLSTACKDOWN 0, 0, implicit-def dead $x2, implicit $x2
|
|
renamable $x10 = ADDI %stack.0, 0
|
|
PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
ADJCALLSTACKUP 0, 0, implicit-def dead $x2, implicit $x2
|
|
PseudoRET
|
|
|
|
...
|
|
---
|
|
name: _Z15stack_size_4096v
|
|
alignment: 2
|
|
tracksRegLiveness: true
|
|
frameInfo:
|
|
maxAlignment: 4
|
|
hasCalls: true
|
|
localFrameSize: 4096
|
|
stack:
|
|
- { id: 0, size: 4096, alignment: 4, local-offset: -4096 }
|
|
machineFunctionInfo:
|
|
varArgsFrameIndex: 0
|
|
varArgsSaveSize: 0
|
|
body: |
|
|
bb.0.entry:
|
|
; CHECK-RV32-NO-COM-LABEL: name: _Z15stack_size_4096v
|
|
; CHECK-RV32-NO-COM: liveins: $x1
|
|
; CHECK-RV32-NO-COM-NEXT: {{ $}}
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -2032
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2032
|
|
; CHECK-RV32-NO-COM-NEXT: SW killed $x1, $x2, 2028 :: (store (s32) into %stack.1)
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -2048
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-setup ADDI killed $x2, -32
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 4112
|
|
; CHECK-RV32-NO-COM-NEXT: renamable $x10 = ADDI $x2, 12
|
|
; CHECK-RV32-NO-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-destroy ADDI killed $x2, 48
|
|
; CHECK-RV32-NO-COM-NEXT: $x1 = LW $x2, 2028 :: (load (s32) from %stack.1)
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV32-NO-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV32-COM-LABEL: name: _Z15stack_size_4096v
|
|
; CHECK-RV32-COM: liveins: $x1
|
|
; CHECK-RV32-COM-NEXT: {{ $}}
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-setup ADDI $x2, -256
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 256
|
|
; CHECK-RV32-COM-NEXT: SW killed $x1, $x2, 252 :: (store (s32) into %stack.1)
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-setup ADDI $x2, -2048
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-setup ADDI killed $x2, -1808
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 4112
|
|
; CHECK-RV32-COM-NEXT: renamable $x10 = ADDI $x2, 12
|
|
; CHECK-RV32-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-destroy ADDI killed $x2, 1824
|
|
; CHECK-RV32-COM-NEXT: $x1 = LW $x2, 252 :: (load (s32) from %stack.1)
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-destroy ADDI $x2, 256
|
|
; CHECK-RV32-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV64-NO-COM-LABEL: name: _Z15stack_size_4096v
|
|
; CHECK-RV64-NO-COM: liveins: $x1
|
|
; CHECK-RV64-NO-COM-NEXT: {{ $}}
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -2032
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2032
|
|
; CHECK-RV64-NO-COM-NEXT: SD killed $x1, $x2, 2024 :: (store (s64) into %stack.1)
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -2048
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-setup ADDI killed $x2, -32
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 4112
|
|
; CHECK-RV64-NO-COM-NEXT: renamable $x10 = ADDI $x2, 8
|
|
; CHECK-RV64-NO-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-destroy ADDI killed $x2, 48
|
|
; CHECK-RV64-NO-COM-NEXT: $x1 = LD $x2, 2024 :: (load (s64) from %stack.1)
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV64-NO-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV64-COM-LABEL: name: _Z15stack_size_4096v
|
|
; CHECK-RV64-COM: liveins: $x1
|
|
; CHECK-RV64-COM-NEXT: {{ $}}
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-setup ADDI $x2, -496
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 496
|
|
; CHECK-RV64-COM-NEXT: SD killed $x1, $x2, 488 :: (store (s64) into %stack.1)
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-setup ADDI $x2, -2048
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-setup ADDI killed $x2, -1568
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 4112
|
|
; CHECK-RV64-COM-NEXT: renamable $x10 = ADDI $x2, 8
|
|
; CHECK-RV64-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-destroy ADDI killed $x2, 1584
|
|
; CHECK-RV64-COM-NEXT: $x1 = LD $x2, 488 :: (load (s64) from %stack.1)
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-destroy ADDI $x2, 496
|
|
; CHECK-RV64-COM-NEXT: PseudoRET
|
|
ADJCALLSTACKDOWN 0, 0, implicit-def dead $x2, implicit $x2
|
|
renamable $x10 = ADDI %stack.0, 0
|
|
PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
ADJCALLSTACKUP 0, 0, implicit-def dead $x2, implicit $x2
|
|
PseudoRET
|
|
|
|
...
|
|
---
|
|
name: _Z15stack_size_8192v
|
|
alignment: 2
|
|
tracksRegLiveness: true
|
|
frameInfo:
|
|
maxAlignment: 4
|
|
hasCalls: true
|
|
localFrameSize: 8192
|
|
stack:
|
|
- { id: 0, size: 8192, alignment: 4, local-offset: -8192 }
|
|
machineFunctionInfo:
|
|
varArgsFrameIndex: 0
|
|
varArgsSaveSize: 0
|
|
body: |
|
|
bb.0.entry:
|
|
; CHECK-RV32-NO-COM-LABEL: name: _Z15stack_size_8192v
|
|
; CHECK-RV32-NO-COM: liveins: $x1
|
|
; CHECK-RV32-NO-COM-NEXT: {{ $}}
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -2032
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2032
|
|
; CHECK-RV32-NO-COM-NEXT: SW killed $x1, $x2, 2028 :: (store (s32) into %stack.1)
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
|
|
; CHECK-RV32-NO-COM-NEXT: $x10 = frame-setup LUI 2
|
|
; CHECK-RV32-NO-COM-NEXT: $x10 = frame-setup ADDI killed $x10, -2016
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-setup SUB $x2, killed $x10
|
|
; CHECK-RV32-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8208
|
|
; CHECK-RV32-NO-COM-NEXT: renamable $x10 = ADDI $x2, 12
|
|
; CHECK-RV32-NO-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV32-NO-COM-NEXT: $x10 = frame-destroy LUI 2
|
|
; CHECK-RV32-NO-COM-NEXT: $x10 = frame-destroy ADDI killed $x10, -2016
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-destroy ADD $x2, killed $x10
|
|
; CHECK-RV32-NO-COM-NEXT: $x1 = LW $x2, 2028 :: (load (s32) from %stack.1)
|
|
; CHECK-RV32-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV32-NO-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV32-COM-LABEL: name: _Z15stack_size_8192v
|
|
; CHECK-RV32-COM: liveins: $x1
|
|
; CHECK-RV32-COM-NEXT: {{ $}}
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-setup ADDI $x2, -256
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 256
|
|
; CHECK-RV32-COM-NEXT: SW killed $x1, $x2, 252 :: (store (s32) into %stack.1)
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -4
|
|
; CHECK-RV32-COM-NEXT: $x10 = frame-setup LUI 2
|
|
; CHECK-RV32-COM-NEXT: $x10 = frame-setup ADDI killed $x10, -240
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-setup SUB $x2, killed $x10
|
|
; CHECK-RV32-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8208
|
|
; CHECK-RV32-COM-NEXT: renamable $x10 = ADDI $x2, 12
|
|
; CHECK-RV32-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV32-COM-NEXT: $x10 = frame-destroy LUI 2
|
|
; CHECK-RV32-COM-NEXT: $x10 = frame-destroy ADDI killed $x10, -240
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-destroy ADD $x2, killed $x10
|
|
; CHECK-RV32-COM-NEXT: $x1 = LW $x2, 252 :: (load (s32) from %stack.1)
|
|
; CHECK-RV32-COM-NEXT: $x2 = frame-destroy ADDI $x2, 256
|
|
; CHECK-RV32-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV64-NO-COM-LABEL: name: _Z15stack_size_8192v
|
|
; CHECK-RV64-NO-COM: liveins: $x1
|
|
; CHECK-RV64-NO-COM-NEXT: {{ $}}
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-setup ADDI $x2, -2032
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 2032
|
|
; CHECK-RV64-NO-COM-NEXT: SD killed $x1, $x2, 2024 :: (store (s64) into %stack.1)
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
|
|
; CHECK-RV64-NO-COM-NEXT: $x10 = frame-setup LUI 2
|
|
; CHECK-RV64-NO-COM-NEXT: $x10 = frame-setup ADDIW killed $x10, -2016
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-setup SUB $x2, killed $x10
|
|
; CHECK-RV64-NO-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8208
|
|
; CHECK-RV64-NO-COM-NEXT: renamable $x10 = ADDI $x2, 8
|
|
; CHECK-RV64-NO-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV64-NO-COM-NEXT: $x10 = frame-destroy LUI 2
|
|
; CHECK-RV64-NO-COM-NEXT: $x10 = frame-destroy ADDIW killed $x10, -2016
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-destroy ADD $x2, killed $x10
|
|
; CHECK-RV64-NO-COM-NEXT: $x1 = LD $x2, 2024 :: (load (s64) from %stack.1)
|
|
; CHECK-RV64-NO-COM-NEXT: $x2 = frame-destroy ADDI $x2, 2032
|
|
; CHECK-RV64-NO-COM-NEXT: PseudoRET
|
|
;
|
|
; CHECK-RV64-COM-LABEL: name: _Z15stack_size_8192v
|
|
; CHECK-RV64-COM: liveins: $x1
|
|
; CHECK-RV64-COM-NEXT: {{ $}}
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-setup ADDI $x2, -496
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 496
|
|
; CHECK-RV64-COM-NEXT: SD killed $x1, $x2, 488 :: (store (s64) into %stack.1)
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION offset $x1, -8
|
|
; CHECK-RV64-COM-NEXT: $x10 = frame-setup LUI 2
|
|
; CHECK-RV64-COM-NEXT: $x10 = frame-setup ADDIW killed $x10, -480
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-setup SUB $x2, killed $x10
|
|
; CHECK-RV64-COM-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8208
|
|
; CHECK-RV64-COM-NEXT: renamable $x10 = ADDI $x2, 8
|
|
; CHECK-RV64-COM-NEXT: PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
; CHECK-RV64-COM-NEXT: $x10 = frame-destroy LUI 2
|
|
; CHECK-RV64-COM-NEXT: $x10 = frame-destroy ADDIW killed $x10, -480
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-destroy ADD $x2, killed $x10
|
|
; CHECK-RV64-COM-NEXT: $x1 = LD $x2, 488 :: (load (s64) from %stack.1)
|
|
; CHECK-RV64-COM-NEXT: $x2 = frame-destroy ADDI $x2, 496
|
|
; CHECK-RV64-COM-NEXT: PseudoRET
|
|
ADJCALLSTACKDOWN 0, 0, implicit-def dead $x2, implicit $x2
|
|
renamable $x10 = ADDI %stack.0, 0
|
|
PseudoCALL target-flags(riscv-call) @_Z6calleePi, csr_ilp32_lp64, implicit-def dead $x1, implicit killed $x10, implicit-def $x2
|
|
ADJCALLSTACKUP 0, 0, implicit-def dead $x2, implicit $x2
|
|
PseudoRET
|
|
|
|
...
|