Files
clang-p2996/llvm/test/CodeGen/AArch64/stack-id-pei-alloc.mir
Sander de Smalen 7f23e0a62f Enforce StackID definition in PEI
There are various places in LLVM where the definition of StackID is not
properly honoured, for example in PEI where objects with a StackID > 0 are
allocated on the default stack (StackID0). This patch enforces that PEI
only considers allocating objects to StackID 0.

Reviewers: arsenm, thegameg, MatzeB

Reviewed By: arsenm

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

llvm-svn: 357460
2019-04-02 09:46:52 +00:00

57 lines
1.8 KiB
YAML

# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass=prologepilog %s -o - | FileCheck %s
...
# Ensure that objects with StackID > 0 are not allocated on the default stack
# (will not be allocated an offset) and are not considered in the calculation of
# the StackSize.
# CHECK: name: test_allocate
# CHECK: stackSize: 16
# CHECK: stack:
# CHECK: id: 0, name: '', type: default, offset: -8, size: 8, alignment: 8,
# CHECK-NEXT: stack-id: 0
# CHECK: id: 1, name: '', type: default, offset: -16, size: 8, alignment: 8,
# CHECK-NEXT: stack-id: 0
# CHECK: id: 2, name: '', type: default, offset: 0, size: 8, alignment: 8,
# CHECK-NEXT: stack-id: 42
name: test_allocate
frameInfo:
maxAlignment: 16
stack:
- { id: 0, stack-id: 0, size: 8, alignment: 8, offset: 0 }
- { id: 1, stack-id: 0, size: 8, alignment: 8, offset: 0 }
- { id: 2, stack-id: 42, size: 8, alignment: 8, offset: 0 }
body: |
bb.0.entry:
RET_ReallyLR
---
...
# Ensure MaxAlignment becomes '32' even though we also have an object
# with alignment of 64. MaxAlignment only pertains to the default stack
# (StackID 0), so objects associated with a different StackID should
# not be considered.
#
# CHECK: name: test_maxalign
# CHECK: maxAlignment: 32
name: test_maxalign
frameInfo:
maxAlignment: 16
stack:
- { id: 0, stack-id: 0, size: 16, alignment: 32 }
- { id: 1, stack-id: 42, size: 16, alignment: 64 }
body: |
bb.0.entry:
RET_ReallyLR
---
...
# CHECK: name: test_maxalign_fixedstack
# CHECK: maxAlignment: 32
name: test_maxalign_fixedstack
frameInfo:
maxAlignment: 16
fixedStack:
- { id: 0, stack-id: 0, size: 16, alignment: 32 }
- { id: 1, stack-id: 42, size: 16, alignment: 64 }
body: |
bb.0.entry:
RET_ReallyLR
---