78 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=x86_64-apple-unknown -run-pass=machine-outliner -verify-machineinstrs %s -o - | FileCheck %s3 4# Outlining CFI instructions is unsafe if we cannot outline all of the CFI5# instructions from a function. This shows that we choose to outline the6# CFI instructions if they can be included in a tail call.7 8--- |9 define void @foo() #0 { ret void }10 define void @bar() #0 { ret void }11 define void @baz() #0 { ret void }12 attributes #0 = { noredzone }13...14---15name: foo16tracksRegLiveness: true17body: |18 bb.0:19 ; CHECK-LABEL: name: foo20 ; CHECK: $ecx = MOV32ri 321 ; CHECK: CFI_INSTRUCTION def_cfa_offset 1622 ; CHECK: CFI_INSTRUCTION offset $rbp, -1623 ; CHECK: CFI_INSTRUCTION def_cfa_register $rsp24 ; CHECK: TAILJMPd64 @OUTLINED_FUNCTION_0, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $edi, implicit-def $edx, implicit-def $esi, implicit $rsp, implicit $ssp25 $ecx = MOV32ri 326 CFI_INSTRUCTION def_cfa_offset 1627 CFI_INSTRUCTION offset $rbp, -1628 CFI_INSTRUCTION def_cfa_register $rsp29 $esi = MOV32ri 130 $edx = MOV32ri 231 $edi = MOV32ri 332 $eax = MOV32ri 433 RET6434...35---36name: bar37tracksRegLiveness: true38body: |39 bb.0:40 ;liveins: $lr41 ; CHECK-LABEL: name: bar42 ; CHECK: $ecx = MOV32ri 343 ; CHECK: CFI_INSTRUCTION def_cfa_offset 1644 ; CHECK: CFI_INSTRUCTION offset $rbp, -1645 ; CHECK: CFI_INSTRUCTION def_cfa_register $rsp46 ; CHECK: TAILJMPd64 @OUTLINED_FUNCTION_0, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $edi, implicit-def $edx, implicit-def $esi, implicit $rsp, implicit $ssp47 $ecx = MOV32ri 348 CFI_INSTRUCTION def_cfa_offset 1649 CFI_INSTRUCTION offset $rbp, -1650 CFI_INSTRUCTION def_cfa_register $rsp51 $esi = MOV32ri 152 $edx = MOV32ri 253 $edi = MOV32ri 354 $eax = MOV32ri 455 RET6456...57---58name: baz59tracksRegLiveness: true60body: |61 bb.0:62 ;liveins: $lr63 ; CHECK-LABEL: name: baz64 ; CHECK: $ecx = MOV32ri 365 ; CHECK: CFI_INSTRUCTION def_cfa_offset 1666 ; CHECK: CFI_INSTRUCTION offset $rbp, -1667 ; CHECK: CFI_INSTRUCTION def_cfa_register $rsp68 ; CHECK: TAILJMPd64 @OUTLINED_FUNCTION_0, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $edi, implicit-def $edx, implicit-def $esi, implicit $rsp, implicit $ssp69 $ecx = MOV32ri 370 CFI_INSTRUCTION def_cfa_offset 1671 CFI_INSTRUCTION offset $rbp, -1672 CFI_INSTRUCTION def_cfa_register $rsp73 $esi = MOV32ri 174 $edx = MOV32ri 275 $edi = MOV32ri 376 $eax = MOV32ri 477 RET6478