diff options
author | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2017-12-15 15:17:18 +0000 |
---|---|---|
committer | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2017-12-15 15:17:18 +0000 |
commit | 278b31c092fc3ad918b729fb8b50ccc8dc6152e5 (patch) | |
tree | 04b6a68044e116983fa281a27f1cad66667cf2c6 /test/CodeGen/MIR | |
parent | 413da1b6010bf10a7a4f432b712f328386da01c2 (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.mir | 57 | ||||
-rw-r--r-- | test/CodeGen/MIR/X86/shrink_wrap_dbg_value.mir | 2 |
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 |