1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/CodeGen/AArch64/stack-id-stackslot-scavenging.mir
Sander de Smalen 520ee96f7f Describe stack-id as an enum
This patch changes MIR stack-id from an integer to an enum,
and adds printing/parsing support for this in MIR files. The default
stack-id '0' is now renamed to 'default'.

This should make MIR tests that have stack objects with different stack-ids
more descriptive. It also clarifies code operating on StackID.

Reviewers: arsenm, thegameg, qcolombet

Reviewed By: arsenm

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

llvm-svn: 363533
2019-06-17 09:13:29 +00:00

25 lines
964 B
YAML

# RUN: llc -mtriple=aarch64-none-linux-gnu -start-before=greedy -stop-after=prologepilog %s -o - | FileCheck %s
...
# Ensure that an object with a different stack-id is not allocated to a
# callee-save slot using stack-slot scavenging. This test saves X28 which
# creates a hole in the CSR stack region, but it should not be saved to.
# Instead of saving to SP + 1 (which would be the hole in the region), it
# should save to SP + 2 (since AArch64 codegen currently does not support
# (and thus allocate) objects with a stack-id > 0).
name: test_no_stackslot_scavenging
# CHECK: name: test_no_stackslot_scavenging
# CHECK: STRXui $x0, $sp, 2
tracksRegLiveness: true
frameInfo:
maxAlignment: 16
stack:
- { id: 0, stack-id: noalloc, size: 8, alignment: 8 }
body: |
bb.0.entry:
liveins: $x0
STRXui $x0, %stack.0, 0
; Force preserve a CSR to create a hole in the CSR stack region.
$x28 = IMPLICIT_DEF
RET_ReallyLR
---