diff options
author | Alex Lorenz <arphaman@gmail.com> | 2015-07-15 22:14:49 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2015-07-15 22:14:49 +0000 |
commit | 37643a04a499a61ad800bcb526fe36e74b0b3636 (patch) | |
tree | 0b1bab2bf62904b5c896b61f5272ad7ef67546bc /llvm/test | |
parent | b9de106d046af99cf990f2a53b37ed804cb817f2 (diff) | |
download | bcm5719-llvm-37643a04a499a61ad800bcb526fe36e74b0b3636.tar.gz bcm5719-llvm-37643a04a499a61ad800bcb526fe36e74b0b3636.zip |
MIR Serialization: Serialize references from the stack objects to named allocas.
This commit serializes the references to the named LLVM alloca instructions from
the stack objects in the machine frame info. This commit adds a field 'Name' to
the struct 'yaml::MachineStackObject'. This new field is used to store the name
of the alloca instruction when the alloca is present and when it has a name.
llvm-svn: 242339
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/CodeGen/MIR/X86/stack-object-invalid-name.mir | 30 | ||||
-rw-r--r-- | llvm/test/CodeGen/MIR/X86/stack-objects.mir | 8 | ||||
-rw-r--r-- | llvm/test/CodeGen/MIR/X86/variable-sized-stack-objects.mir | 4 |
3 files changed, 36 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/MIR/X86/stack-object-invalid-name.mir b/llvm/test/CodeGen/MIR/X86/stack-object-invalid-name.mir new file mode 100644 index 00000000000..2d4f57bad3d --- /dev/null +++ b/llvm/test/CodeGen/MIR/X86/stack-object-invalid-name.mir @@ -0,0 +1,30 @@ +# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s +# This test ensures that the MIR parser reports an error when it encounters a +# stack object with a name that can't be associated with an alloca instruction. + +--- | + + define i32 @test(i32 %a) { + entry: + %b = alloca i32 + store i32 %a, i32* %b + %c = load i32, i32* %b + ret i32 %c + } + +... +--- +name: test +frameInfo: + maxAlignment: 4 +stack: + # CHECK: [[@LINE+1]]:20: alloca instruction named 'x' isn't defined in the function 'test' + - { id: 0, name: x, offset: -12, size: 4, alignment: 4 } +body: + - id: 0 + name: entry + instructions: + - 'MOV32mr %rsp, 1, _, -4, _, %edi' + - '%eax = MOV32rm %rsp, 1, _, -4, _' + - 'RETQ %eax' +... diff --git a/llvm/test/CodeGen/MIR/X86/stack-objects.mir b/llvm/test/CodeGen/MIR/X86/stack-objects.mir index 14ed4b74f96..37666300a91 100644 --- a/llvm/test/CodeGen/MIR/X86/stack-objects.mir +++ b/llvm/test/CodeGen/MIR/X86/stack-objects.mir @@ -21,12 +21,12 @@ name: test frameInfo: maxAlignment: 8 # CHECK: stack: -# CHECK-NEXT: - { id: 0, offset: -12, size: 4, alignment: 4 } -# CHECK-NEXT: - { id: 1, offset: -24, size: 8, alignment: 8 } +# CHECK-NEXT: - { id: 0, name: b, offset: -12, size: 4, alignment: 4 } +# CHECK-NEXT: - { id: 1, name: x, offset: -24, size: 8, alignment: 8 } # CHECK-NEXT: - { id: 2, type: spill-slot, offset: -32, size: 4, alignment: 4 } stack: - - { id: 0, offset: -12, size: 4, alignment: 4 } - - { id: 1, offset: -24, size: 8, alignment: 8 } + - { id: 0, name: b, offset: -12, size: 4, alignment: 4 } + - { id: 1, name: x, offset: -24, size: 8, alignment: 8 } - { id: 2, type: spill-slot, offset: -32, size: 4, alignment: 4 } body: - id: 0 diff --git a/llvm/test/CodeGen/MIR/X86/variable-sized-stack-objects.mir b/llvm/test/CodeGen/MIR/X86/variable-sized-stack-objects.mir index 4c45742b25a..5e6467e9cfa 100644 --- a/llvm/test/CodeGen/MIR/X86/variable-sized-stack-objects.mir +++ b/llvm/test/CodeGen/MIR/X86/variable-sized-stack-objects.mir @@ -26,11 +26,11 @@ frameInfo: # CHECK: stack: # CHECK-NEXT: - { id: 0, offset: -20, size: 4, alignment: 4 } # CHECK-NEXT: - { id: 1, offset: -32, size: 8, alignment: 8 } -# CHECK-NEXT: - { id: 2, type: variable-sized, offset: -32, alignment: 1 } +# CHECK-NEXT: - { id: 2, name: y, type: variable-sized, offset: -32, alignment: 1 } stack: - { id: 0, offset: -20, size: 4, alignment: 4 } - { id: 1, offset: -32, size: 8, alignment: 8 } - - { id: 2, type: variable-sized, offset: -32, alignment: 1 } + - { id: 2, name: y, type: variable-sized, offset: -32, alignment: 1 } body: - id: 0 name: entry |