Files
clang-p2996/llvm/test/CodeGen/MIR/X86/fixed-stack-objects.mir
Alex Lorenz de491f0515 MIR Serialization: Serialize the fixed stack objects.
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
llvm-svn: 242045
2015-07-13 18:07:26 +00:00

36 lines
908 B
YAML

# RUN: llc -march=x86 -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:
stackSize: 4
maxAlignment: 4
# CHECK: fixedStack:
# CHECK-NEXT: - { id: 0, offset: 0, size: 4, alignment: 4, isImmutable: true, isAliased: false }
fixedStack:
- { id: 0, offset: 0, size: 4, alignment: 4, isImmutable: true, isAliased: false }
stack:
- { id: 0, offset: -8, size: 4, alignment: 4 }
body:
- id: 0
name: entry
instructions:
- '%eax = MOV32rm %esp, 1, _, 8, _'
- 'MOV32mr %esp, 1, _, 0, _, %eax'
- 'RETL %eax'
...