summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/MIR/X86
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2015-07-23 23:09:07 +0000
committerAlex Lorenz <arphaman@gmail.com>2015-07-23 23:09:07 +0000
commit8cfc68677cd69c52ac9af50bac90410a98e1972e (patch)
tree006c3a8493c788dc1275a611ded859e54203d47f /llvm/test/CodeGen/MIR/X86
parent8abca7e7294352390af75a6a24d264a4a9c8643f (diff)
downloadbcm5719-llvm-8cfc68677cd69c52ac9af50bac90410a98e1972e.tar.gz
bcm5719-llvm-8cfc68677cd69c52ac9af50bac90410a98e1972e.zip
MIR Serialization: Serialize the '.cfi_offset' CFI instruction.
Reviewers: Duncan P. N. Exon Smith llvm-svn: 243062
Diffstat (limited to 'llvm/test/CodeGen/MIR/X86')
-rw-r--r--llvm/test/CodeGen/MIR/X86/cfi-offset.mir47
-rw-r--r--llvm/test/CodeGen/MIR/X86/expected-comma-after-cfi-register.mir44
-rw-r--r--llvm/test/CodeGen/MIR/X86/expected-register-after-cfi-operand.mir44
3 files changed, 135 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/MIR/X86/cfi-offset.mir b/llvm/test/CodeGen/MIR/X86/cfi-offset.mir
new file mode 100644
index 00000000000..548bcb45924
--- /dev/null
+++ b/llvm/test/CodeGen/MIR/X86/cfi-offset.mir
@@ -0,0 +1,47 @@
+# 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 the .cfi_offset operands
+# correctly.
+
+--- |
+
+ declare void @foo(i32)
+
+ define i32 @test(i32 %a, i32 %b, i32 %c, i32 %d) {
+ entry:
+ %add = add nsw i32 %b, %a
+ %add1 = add nsw i32 %add, %c
+ %add2 = add nsw i32 %add1, %d
+ tail call void @foo(i32 %add2)
+ %add6 = add nsw i32 %add2, %add2
+ ret i32 %add6
+ }
+
+...
+---
+name: test
+tracksRegLiveness: true
+frameInfo:
+ stackSize: 8
+ adjustsStack: true
+ hasCalls: true
+fixedStack:
+ - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16 }
+body:
+ - id: 0
+ name: entry
+ instructions:
+ - 'PUSH64r killed %rbx, implicit-def %rsp, implicit %rsp'
+ - 'CFI_INSTRUCTION .cfi_def_cfa_offset 16'
+ # CHECK: CFI_INSTRUCTION .cfi_offset %rbx, -16
+ - 'CFI_INSTRUCTION .cfi_offset %rbx, -16'
+ - '%ebx = COPY %edi, implicit-def %rbx'
+ - '%ebx = ADD32rr %ebx, killed %esi, implicit-def dead %eflags'
+ - '%ebx = ADD32rr %ebx, killed %edx, implicit-def dead %eflags'
+ - '%ebx = ADD32rr %ebx, killed %ecx, implicit-def dead %eflags'
+ - '%edi = COPY %ebx'
+ - 'CALL64pcrel32 @foo, csr_64, implicit %rsp, implicit %edi, implicit-def %rsp'
+ - '%eax = LEA64_32r killed %rbx, 1, %rbx, 0, _'
+ - '%rbx = POP64r implicit-def %rsp, implicit %rsp'
+ - 'RETQ %eax'
+...
+
diff --git a/llvm/test/CodeGen/MIR/X86/expected-comma-after-cfi-register.mir b/llvm/test/CodeGen/MIR/X86/expected-comma-after-cfi-register.mir
new file mode 100644
index 00000000000..8c4eac037fa
--- /dev/null
+++ b/llvm/test/CodeGen/MIR/X86/expected-comma-after-cfi-register.mir
@@ -0,0 +1,44 @@
+# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
+
+--- |
+
+ declare void @foo(i32)
+
+ define i32 @test(i32 %a, i32 %b, i32 %c, i32 %d) {
+ entry:
+ %add = add nsw i32 %b, %a
+ %add1 = add nsw i32 %add, %c
+ %add2 = add nsw i32 %add1, %d
+ tail call void @foo(i32 %add2)
+ %add6 = add nsw i32 %add2, %add2
+ ret i32 %add6
+ }
+
+...
+---
+name: test
+tracksRegLiveness: true
+frameInfo:
+ stackSize: 8
+ adjustsStack: true
+ hasCalls: true
+fixedStack:
+ - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16 }
+body:
+ - id: 0
+ name: entry
+ instructions:
+ - 'PUSH64r killed %rbx, implicit-def %rsp, implicit %rsp'
+ - 'CFI_INSTRUCTION .cfi_def_cfa_offset 16'
+ # CHECK: [[@LINE+1]]:43: expected ','
+ - 'CFI_INSTRUCTION .cfi_offset %rbx -16'
+ - '%ebx = COPY %edi, implicit-def %rbx'
+ - '%ebx = ADD32rr %ebx, killed %esi, implicit-def dead %eflags'
+ - '%ebx = ADD32rr %ebx, killed %edx, implicit-def dead %eflags'
+ - '%ebx = ADD32rr %ebx, killed %ecx, implicit-def dead %eflags'
+ - '%edi = COPY %ebx'
+ - 'CALL64pcrel32 @foo, csr_64, implicit %rsp, implicit %edi, implicit-def %rsp'
+ - '%eax = LEA64_32r killed %rbx, 1, %rbx, 0, _'
+ - '%rbx = POP64r implicit-def %rsp, implicit %rsp'
+ - 'RETQ %eax'
+...
diff --git a/llvm/test/CodeGen/MIR/X86/expected-register-after-cfi-operand.mir b/llvm/test/CodeGen/MIR/X86/expected-register-after-cfi-operand.mir
new file mode 100644
index 00000000000..7178c1d4568
--- /dev/null
+++ b/llvm/test/CodeGen/MIR/X86/expected-register-after-cfi-operand.mir
@@ -0,0 +1,44 @@
+# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
+
+--- |
+
+ declare void @foo(i32)
+
+ define i32 @test(i32 %a, i32 %b, i32 %c, i32 %d) {
+ entry:
+ %add = add nsw i32 %b, %a
+ %add1 = add nsw i32 %add, %c
+ %add2 = add nsw i32 %add1, %d
+ tail call void @foo(i32 %add2)
+ %add6 = add nsw i32 %add2, %add2
+ ret i32 %add6
+ }
+
+...
+---
+name: test
+tracksRegLiveness: true
+frameInfo:
+ stackSize: 8
+ adjustsStack: true
+ hasCalls: true
+fixedStack:
+ - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16 }
+body:
+ - id: 0
+ name: entry
+ instructions:
+ - 'PUSH64r killed %rbx, implicit-def %rsp, implicit %rsp'
+ - 'CFI_INSTRUCTION .cfi_def_cfa_offset 16'
+ # CHECK: [[@LINE+1]]:38: expected a cfi register
+ - 'CFI_INSTRUCTION .cfi_offset %0, -16'
+ - '%ebx = COPY %edi, implicit-def %rbx'
+ - '%ebx = ADD32rr %ebx, killed %esi, implicit-def dead %eflags'
+ - '%ebx = ADD32rr %ebx, killed %edx, implicit-def dead %eflags'
+ - '%ebx = ADD32rr %ebx, killed %ecx, implicit-def dead %eflags'
+ - '%edi = COPY %ebx'
+ - 'CALL64pcrel32 @foo, csr_64, implicit %rsp, implicit %edi, implicit-def %rsp'
+ - '%eax = LEA64_32r killed %rbx, 1, %rbx, 0, _'
+ - '%rbx = POP64r implicit-def %rsp, implicit %rsp'
+ - 'RETQ %eax'
+...
OpenPOWER on IntegriCloud