brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · f18f624 Raw
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