brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 2056d59 Raw
91 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 not to outline the6# CFI instructions since function foo has a CFI Instruction that would not7# be caught.8 9--- |10  define void @foo() #0 { ret void }11  define void @bar() #0 { ret void }12  define void @baz() #0 { ret void }13  attributes #0 = { noredzone }14...15---16name:            foo17tracksRegLiveness: true18body:             |19  bb.0:20    ; CHECK-LABEL: name: foo21    ; CHECK: CFI_INSTRUCTION def_cfa_offset 1622    ; CHECK: CFI_INSTRUCTION offset $rbp, -1623    ; CHECK: CFI_INSTRUCTION def_cfa_register $rbp24    ; CHECK: CALL64pcrel32 @OUTLINED_FUNCTION_1, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $ebx, implicit-def $ecx, implicit $rsp, implicit $ssp25    ; CHECK: CFI_INSTRUCTION def_cfa_offset 1626    ; CHECK: CFI_INSTRUCTION offset $rbp, -1627    ; CHECK: CFI_INSTRUCTION def_cfa_register $rsp28    ; CHECK: TAILJMPd64 @OUTLINED_FUNCTION_0, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $edi, implicit-def $edx, implicit-def $esi, implicit $rsp, implicit $ssp29    CFI_INSTRUCTION def_cfa_offset 1630    CFI_INSTRUCTION offset $rbp, -1631    CFI_INSTRUCTION def_cfa_register $rbp32    $eax =  MOV32ri 133    $ebx =  MOV32ri 234    $ecx =  MOV32ri 335    CFI_INSTRUCTION def_cfa_offset 1636    CFI_INSTRUCTION offset $rbp, -1637    CFI_INSTRUCTION def_cfa_register $rsp38    $esi = MOV32ri 139    $edx = MOV32ri 240    $edi = MOV32ri 341    $eax = MOV32ri 442    RET6443...44---45name:            bar46tracksRegLiveness: true47body:             |48  bb.0:49  ;liveins: $lr50    ; CHECK-LABEL: name: bar51    ; CHECK: CALL64pcrel32 @OUTLINED_FUNCTION_1, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $ebx, implicit-def $ecx, implicit $rsp, implicit $ssp52    ; CHECK: CFI_INSTRUCTION def_cfa_offset 1653    ; CHECK: CFI_INSTRUCTION offset $rbp, -1654    ; CHECK: CFI_INSTRUCTION def_cfa_register $rsp55    ; CHECK: TAILJMPd64 @OUTLINED_FUNCTION_0, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $edi, implicit-def $edx, implicit-def $esi, implicit $rsp, implicit $ssp56    $eax =  MOV32ri 157    $ebx =  MOV32ri 258    $ecx =  MOV32ri 359    CFI_INSTRUCTION def_cfa_offset 1660    CFI_INSTRUCTION offset $rbp, -1661    CFI_INSTRUCTION def_cfa_register $rsp62    $esi = MOV32ri 163    $edx = MOV32ri 264    $edi = MOV32ri 365    $eax = MOV32ri 466    RET6467...68---69name:            baz70tracksRegLiveness: true71body:             |72  bb.0:73  ;liveins: $lr74    ; CHECK-LABEL: name: baz75    ; CHECK: CALL64pcrel32 @OUTLINED_FUNCTION_1, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $ebx, implicit-def $ecx, implicit $rsp, implicit $ssp76    ; CHECK: CFI_INSTRUCTION def_cfa_offset 1677    ; CHECK: CFI_INSTRUCTION offset $rbp, -1678    ; CHECK: CFI_INSTRUCTION def_cfa_register $rsp79    ; CHECK: TAILJMPd64 @OUTLINED_FUNCTION_0, implicit $rsp, implicit $ssp, implicit-def $eax, implicit-def $edi, implicit-def $edx, implicit-def $esi, implicit $rsp, implicit $ssp80    $eax =  MOV32ri 181    $ebx =  MOV32ri 282    $ecx =  MOV32ri 383    CFI_INSTRUCTION def_cfa_offset 1684    CFI_INSTRUCTION offset $rbp, -1685    CFI_INSTRUCTION def_cfa_register $rsp86    $esi = MOV32ri 187    $edx = MOV32ri 288    $edi = MOV32ri 389    $eax = MOV32ri 490    RET6491