brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · 290e355 Raw
113 lines · plain
1# RUN: llc -mtriple=aarch64--- -run-pass=machine-outliner \2# RUN: -verify-machineinstrs %s -o - | FileCheck %s3 4# Show that, when instructions that use the stack are present, it's possible5# for us to outline everything as the default outlining type.6# It's possible for reg-save-possible to outline by storing LR to a register,7# but most candidates in this case require us to modify the stack. The outliner8# should see that it's more beneficial to fix up instructions and save LR to9# the stack in this case.10 11--- |12  define void @reg-save-possible() #0 { ret void }13  define void @stack-save1() #0 { ret void }14  define void @stack-save2() #0 { ret void }15  define void @stack-save3() #0 { ret void }16  attributes #0 = { minsize noinline noredzone "frame-pointer"="all" }17...18---19 20name:            reg-save-possible21tracksRegLiveness: true22body:             |23  bb.0:24  liveins: $lr25  $lr = ORRXri $xzr, 126  $x19 = ORRXri $xzr, 127  $x20 = ORRXri $xzr, 128  bb.1:29    liveins: $lr30    ; CHECK-LABEL: name:            reg-save-possible31    ; CHECK: $sp = STRXpre $lr, $sp, -1632    ; CHECK-NEXT: BL [[FN:@OUTLINED_FUNCTION_[0-9]+]]33    ; CHECK-NEXT: $sp, $lr = LDRXpost $sp, 1634    $x20, $x19 = LDPXi $sp, 1035    $x20, $x19 = LDPXi $sp, 1036    $x20, $x19 = LDPXi $sp, 1037    $x20, $x19 = LDPXi $sp, 1038    $x20, $x19 = LDPXi $sp, 1039  bb.2:40    RET undef $lr41 42...43---44 45name:            stack-save146tracksRegLiveness: true47body:             |48  bb.0:49  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp50  $lr = ORRXri $xzr, 151  bb.1:52  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp53    ; CHECK-LABEL: name:            stack-save154    ; CHECK: $sp = STRXpre $lr, $sp, -1655    ; CHECK-NEXT: BL [[FN]]56    ; CHECK-NEXT: $sp, $lr = LDRXpost $sp, 1657    $x20, $x19 = LDPXi $sp, 1058    $x20, $x19 = LDPXi $sp, 1059    $x20, $x19 = LDPXi $sp, 1060    $x20, $x19 = LDPXi $sp, 1061    $x20, $x19 = LDPXi $sp, 1062  bb.2:63  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp64    RET undef $lr65 66...67---68 69name:            stack-save270tracksRegLiveness: true71body:             |72  bb.0:73  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp74  $lr = ORRXri $xzr, 175  bb.1:76  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp77    ; CHECK-LABEL: name:            stack-save278    ; CHECK: $sp = STRXpre $lr, $sp, -1679    ; CHECK-NEXT: BL [[FN]]80    ; CHECK-NEXT: $sp, $lr = LDRXpost $sp, 1681    $x20, $x19 = LDPXi $sp, 1082    $x20, $x19 = LDPXi $sp, 1083    $x20, $x19 = LDPXi $sp, 1084    $x20, $x19 = LDPXi $sp, 1085    $x20, $x19 = LDPXi $sp, 1086  bb.2:87  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp88    RET undef $lr89 90...91---92 93name:            stack-save394tracksRegLiveness: true95body:             |96  bb.0:97  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp98  $lr = ORRXri $xzr, 199  bb.1:100  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp101    ; CHECK-LABEL: name:            stack-save3102    ; CHECK: $sp = STRXpre $lr, $sp, -16103    ; CHECK-NEXT: BL [[FN]]104    ; CHECK-NEXT: $sp, $lr = LDRXpost $sp, 16105    $x20, $x19 = LDPXi $sp, 10106    $x20, $x19 = LDPXi $sp, 10107    $x20, $x19 = LDPXi $sp, 10108    $x20, $x19 = LDPXi $sp, 10109    $x20, $x19 = LDPXi $sp, 10110  bb.2:111  liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp112    RET undef $lr113