1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/test/CodeGen/AArch64/extra-callee-save.mir
Sander de Smalen 3c4747236e [AArch64] Do not allocate unnecessary emergency slot.
Fix an issue where the compiler still allocates an emergency spill slot even
though it already decided to spill an extra callee-save register to use
as a scratch register.

Reviewers: gberry, thegameg, mstorsjo, t.p.northover

Reviewed By: thegameg

Differential Revision: https://reviews.llvm.org/D65504

llvm-svn: 367540
2019-08-01 10:53:45 +00:00

29 lines
784 B
YAML

#RUN: llc -mtriple=aarch64-- -run-pass prologepilog %s -o - | FileCheck %s
# Check that we spill a scratch register, but not also an additional
# emergency spill slot.
---
name: big_stack
# CHECK-LABEL: name: big_stack
# CHECK: frame-setup STPXi killed $x20, killed $x19
# CHECK: $sp = frame-setup SUBXri $sp, 8, 12
# CHECK-NOT: frame-setup SUBXri $sp, 16, 0
tracksRegLiveness: true
stack:
- { id: 0, name: '', size: 32761, alignment: 8 }
body: |
bb.0:
$x19 = IMPLICIT_DEF
; $x20 can be used as scratch register.
$x21 = IMPLICIT_DEF
$x22 = IMPLICIT_DEF
$x23 = IMPLICIT_DEF
$x24 = IMPLICIT_DEF
$x25 = IMPLICIT_DEF
$x26 = IMPLICIT_DEF
$x27 = IMPLICIT_DEF
$x28 = IMPLICIT_DEF
$lr = IMPLICIT_DEF
$fp = IMPLICIT_DEF
RET_ReallyLR
...