mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-20 16:17:38 +00:00
ad7556d177
This commit serializes the fixed stack objects, including fixed spill slots. The fixed stack objects are serialized using a YAML sequence of YAML inline mappings. Each mapping has the object's ID, type, size, offset, and alignment. The objects that aren't spill slots also serialize the isImmutable and isAliased flags. The fixed stack objects are a part of the machine function's YAML mapping. Reviewers: Duncan P. N. Exon Smith git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242045 91177308-0d34-0410-b5e6-96231b3b80d8
35 lines
839 B
YAML
35 lines
839 B
YAML
# RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s
|
|
# This test ensures that the MIR parser parses fixed stack objects correctly.
|
|
|
|
--- |
|
|
|
|
define i32 @test(i32 %a) #0 {
|
|
entry:
|
|
%b = alloca i32
|
|
store i32 %a, i32* %b
|
|
%c = load i32, i32* %b
|
|
ret i32 %c
|
|
}
|
|
|
|
attributes #0 = { "no-frame-pointer-elim"="false" }
|
|
|
|
...
|
|
---
|
|
name: test
|
|
frameInfo:
|
|
maxAlignment: 4
|
|
# CHECK: fixedStack:
|
|
# CHECK-NEXT: - { id: 0, type: spill-slot, offset: 0, size: 4, alignment: 4 }
|
|
fixedStack:
|
|
- { id: 0, type: spill-slot, offset: 0, size: 4, alignment: 4 }
|
|
stack:
|
|
- { id: 0, offset: -12, size: 4, alignment: 4 }
|
|
body:
|
|
- id: 0
|
|
name: entry
|
|
instructions:
|
|
- 'MOV32mr %rsp, 1, _, -4, _, %edi'
|
|
- '%eax = COPY %edi'
|
|
- 'RETQ %eax'
|
|
...
|