summaryrefslogtreecommitdiff
path: root/test/CodeGen/MIR
diff options
context:
space:
mode:
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>2017-12-15 15:17:18 +0000
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>2017-12-15 15:17:18 +0000
commit278b31c092fc3ad918b729fb8b50ccc8dc6152e5 (patch)
tree04b6a68044e116983fa281a27f1cad66667cf2c6 /test/CodeGen/MIR
parent413da1b6010bf10a7a4f432b712f328386da01c2 (diff)
[MIR] Add support for missing CFI directives
The following CFI directives are suported by MC but not by MIR: * .cfi_rel_offset * .cfi_adjust_cfa_offset * .cfi_escape * .cfi_remember_state * .cfi_restore_state * .cfi_undefined * .cfi_register * .cfi_window_save Add support for printing, parsing and update tests. Differential Revision: https://reviews.llvm.org/D41230 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320819 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/MIR')
-rw-r--r--test/CodeGen/MIR/AArch64/cfi.mir57
-rw-r--r--test/CodeGen/MIR/X86/shrink_wrap_dbg_value.mir2
2 files changed, 24 insertions, 35 deletions
diff --git a/test/CodeGen/MIR/AArch64/cfi.mir b/test/CodeGen/MIR/AArch64/cfi.mir
index 8d9a2772afa..2a39c272ec6 100644
--- a/test/CodeGen/MIR/AArch64/cfi.mir
+++ b/test/CodeGen/MIR/AArch64/cfi.mir
@@ -11,49 +11,38 @@
ret void
}
- define void @trivial_fp_func_restore() {
- entry:
- call void @foo()
- ret void
- }
-
...
---
name: trivial_fp_func
# CHECK-LABEL: name: trivial_fp_func
body: |
bb.0.entry:
- liveins: %lr, %fp, %lr, %fp
-
- %sp = frame-setup STPXpre killed %fp, killed %lr, %sp, -2
- %fp = frame-setup ADDXri %sp, 0, 0
; CHECK: CFI_INSTRUCTION def_cfa %w29, 16
frame-setup CFI_INSTRUCTION def_cfa %w29, 16
- frame-setup CFI_INSTRUCTION offset %w30, -8
- frame-setup CFI_INSTRUCTION offset %w29, -16
- BL @foo, csr_aarch64_aapcs, implicit-def dead %lr, implicit %sp, implicit-def %sp
- %sp, %fp, %lr = LDPXpost %sp, 2
- RET_ReallyLR
-...
----
-name: trivial_fp_func_restore
-# CHECK-LABEL: name: trivial_fp_func_restore
-body: |
- bb.0.entry:
- liveins: %lr, %fp
-
- %sp = frame-setup STPXpre killed %fp, killed %lr, %sp, -2
- %fp = frame-setup ADDXri %sp, 0, 0
- frame-setup CFI_INSTRUCTION def_cfa %w29, 16
- frame-setup CFI_INSTRUCTION offset %w30, -8
+ ; CHECK: CFI_INSTRUCTION def_cfa_register %w29
+ frame-setup CFI_INSTRUCTION def_cfa_register %w29
+ ; CHECK: CFI_INSTRUCTION def_cfa_offset -8
+ frame-setup CFI_INSTRUCTION def_cfa_offset -8
; CHECK: CFI_INSTRUCTION offset %w30, -8
- frame-setup CFI_INSTRUCTION offset %w29, -16
- ; CHECK: CFI_INSTRUCTION offset %w29, -16
- BL @foo, csr_aarch64_aapcs, implicit-def dead %lr, implicit %sp, implicit-def %sp
- %sp, %fp, %lr = LDPXpost %sp, 2
+ frame-setup CFI_INSTRUCTION offset %w30, -8
+ ; CHECK: CFI_INSTRUCTION rel_offset %w30, -8
+ frame-setup CFI_INSTRUCTION rel_offset %w30, -8
+ ; CHECK: CFI_INSTRUCTION adjust_cfa_offset -8
+ frame-setup CFI_INSTRUCTION adjust_cfa_offset -8
CFI_INSTRUCTION restore %w30
; CHECK: CFI_INSTRUCTION restore %w30
- CFI_INSTRUCTION restore %w29
- ; CHECK: CFI_INSTRUCTION restore %w29
+ CFI_INSTRUCTION undefined %w30
+ ; CHECK: CFI_INSTRUCTION undefined %w30
+ CFI_INSTRUCTION same_value %w29
+ ; CHECK: CFI_INSTRUCTION same_value %w29
+ CFI_INSTRUCTION register %w20, %w30
+ ; CHECK: CFI_INSTRUCTION register %w20, %w30
+ CFI_INSTRUCTION remember_state
+ ; CHECK: CFI_INSTRUCTION remember_state
+ CFI_INSTRUCTION restore_state
+ ; CHECK: CFI_INSTRUCTION restore_state
+ CFI_INSTRUCTION escape 0x61, 0x62, 0x63
+ ; CHECK: CFI_INSTRUCTION escape 0x61, 0x62, 0x63
+ CFI_INSTRUCTION window_save
+ ; CHECK: CFI_INSTRUCTION window_save
RET_ReallyLR
-...
diff --git a/test/CodeGen/MIR/X86/shrink_wrap_dbg_value.mir b/test/CodeGen/MIR/X86/shrink_wrap_dbg_value.mir
index f6679467056..bdc214c8e7b 100644
--- a/test/CodeGen/MIR/X86/shrink_wrap_dbg_value.mir
+++ b/test/CodeGen/MIR/X86/shrink_wrap_dbg_value.mir
@@ -162,7 +162,7 @@ body: |
ADJCALLSTACKDOWN32 4, 0, 4, implicit-def dead %esp, implicit-def dead %eflags, implicit-def dead %ssp, implicit %esp, implicit %ssp, debug-location !33
DBG_VALUE %fixed-stack.1, 0, !14, !DIExpression(), debug-location !20
PUSH32r %ebx, implicit-def %esp, implicit %esp, debug-location !33
- ;CFI_INSTRUCTION <unserializable cfi operation>, debug-location !33
+ CFI_INSTRUCTION adjust_cfa_offset 4, debug-location !33
CALLpcrel32 @doSomething, csr_32, implicit %esp, implicit %ssp, implicit-def %esp, implicit-def %ssp, implicit-def %eax, debug-location !33
ADJCALLSTACKUP32 4, 0, implicit-def dead %esp, implicit-def dead %eflags, implicit-def dead %ssp, implicit %esp, implicit %ssp, debug-location !33
%edi = INC32r killed %edi, implicit-def dead %eflags, debug-location !30