176 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - %s -mtriple=thumbv7-- -run-pass=stack-protector -run-pass=prologepilog | FileCheck %s3---4# This should trigger an emergency spill in the register scavenger because the5# frame offset into the large argument is too large.6name: func07tracksRegLiveness: true8fixedStack:9 - { id: 0, offset: 4084, size: 4, alignment: 4, isImmutable: true,10 isAliased: false }11 - { id: 1, offset: -12, size: 4096, alignment: 4, isImmutable: false,12 isAliased: false }13body: |14 bb.0:15 ; CHECK-LABEL: name: func016 ; CHECK: liveins: $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $lr17 ; CHECK: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $r7, killed $r8, killed $r9, killed $r10, killed $r11, killed $lr18 ; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 3619 ; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -1620 ; CHECK: frame-setup CFI_INSTRUCTION offset $r11, -2021 ; CHECK: frame-setup CFI_INSTRUCTION offset $r10, -2422 ; CHECK: frame-setup CFI_INSTRUCTION offset $r9, -2823 ; CHECK: frame-setup CFI_INSTRUCTION offset $r8, -3224 ; CHECK: frame-setup CFI_INSTRUCTION offset $r7, -3625 ; CHECK: frame-setup CFI_INSTRUCTION offset $r6, -4026 ; CHECK: frame-setup CFI_INSTRUCTION offset $r5, -4427 ; CHECK: frame-setup CFI_INSTRUCTION offset $r4, -4828 ; CHECK: $sp = frame-setup tSUBspi $sp, 4, 14 /* CC::al */, $noreg29 ; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 5230 ; CHECK: $r0 = IMPLICIT_DEF31 ; CHECK: $r1 = IMPLICIT_DEF32 ; CHECK: $r2 = IMPLICIT_DEF33 ; CHECK: $r3 = IMPLICIT_DEF34 ; CHECK: $r4 = IMPLICIT_DEF35 ; CHECK: $r5 = IMPLICIT_DEF36 ; CHECK: $r6 = IMPLICIT_DEF37 ; CHECK: $r7 = IMPLICIT_DEF38 ; CHECK: $r8 = IMPLICIT_DEF39 ; CHECK: $r9 = IMPLICIT_DEF40 ; CHECK: $r10 = IMPLICIT_DEF41 ; CHECK: $r11 = IMPLICIT_DEF42 ; CHECK: $r12 = IMPLICIT_DEF43 ; CHECK: $lr = IMPLICIT_DEF44 ; CHECK: t2STRi12 killed $r0, $sp, 0, 14 /* CC::al */, $noreg :: (store (s32) into %stack.0)45 ; CHECK: $r0 = t2ADDri killed $sp, 4096, 14 /* CC::al */, $noreg, $noreg46 ; CHECK: $sp = t2LDRi12 killed $r0, 40, 14 /* CC::al */, $noreg :: (load (s32))47 ; CHECK: $r0 = t2LDRi12 $sp, 0, 14 /* CC::al */, $noreg :: (load (s32) from %stack.0)48 ; CHECK: KILL $r049 ; CHECK: KILL $r150 ; CHECK: KILL $r251 ; CHECK: KILL $r352 ; CHECK: KILL $r453 ; CHECK: KILL $r554 ; CHECK: KILL $r655 ; CHECK: KILL $r756 ; CHECK: KILL $r857 ; CHECK: KILL $r958 ; CHECK: KILL $r1059 ; CHECK: KILL $r1160 ; CHECK: KILL $r1261 ; CHECK: KILL $lr62 $r0 = IMPLICIT_DEF63 $r1 = IMPLICIT_DEF64 $r2 = IMPLICIT_DEF65 $r3 = IMPLICIT_DEF66 $r4 = IMPLICIT_DEF67 $r5 = IMPLICIT_DEF68 $r6 = IMPLICIT_DEF69 $r7 = IMPLICIT_DEF70 $r8 = IMPLICIT_DEF71 $r9 = IMPLICIT_DEF72 $r10 = IMPLICIT_DEF73 $r11 = IMPLICIT_DEF74 $r12 = IMPLICIT_DEF75 $lr = IMPLICIT_DEF76 77 $sp = t2LDRi12 %fixed-stack.0, 0, 14, $noreg :: (load (s32))78 79 KILL $r080 KILL $r181 KILL $r282 KILL $r383 KILL $r484 KILL $r585 KILL $r686 KILL $r787 KILL $r888 KILL $r989 KILL $r1090 KILL $r1191 KILL $r1292 KILL $lr93...94---95# This should not trigger an emergency spill yet.96name: func197tracksRegLiveness: true98fixedStack:99 - { id: 0, offset: 4044, size: 4, alignment: 4, isImmutable: true,100 isAliased: false }101 - { id: 1, offset: -12, size: 4056, alignment: 4, isImmutable: false,102 isAliased: false }103body: |104 bb.0:105 ; CHECK-LABEL: name: func1106 ; CHECK: liveins: $r4, $r5, $r6, $r8, $r9, $r10, $r11, $lr107 ; CHECK: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $r8, killed $r9, killed $r10, killed $r11, killed $lr108 ; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 32109 ; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -16110 ; CHECK: frame-setup CFI_INSTRUCTION offset $r11, -20111 ; CHECK: frame-setup CFI_INSTRUCTION offset $r10, -24112 ; CHECK: frame-setup CFI_INSTRUCTION offset $r9, -28113 ; CHECK: frame-setup CFI_INSTRUCTION offset $r8, -32114 ; CHECK: frame-setup CFI_INSTRUCTION offset $r6, -36115 ; CHECK: frame-setup CFI_INSTRUCTION offset $r5, -40116 ; CHECK: frame-setup CFI_INSTRUCTION offset $r4, -44117 ; CHECK: $sp = frame-setup tSUBspi $sp, 4, 14 /* CC::al */, $noreg118 ; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 48119 ; CHECK: $r0 = IMPLICIT_DEF120 ; CHECK: $r1 = IMPLICIT_DEF121 ; CHECK: $r2 = IMPLICIT_DEF122 ; CHECK: $r3 = IMPLICIT_DEF123 ; CHECK: $r4 = IMPLICIT_DEF124 ; CHECK: $r5 = IMPLICIT_DEF125 ; CHECK: $r6 = IMPLICIT_DEF126 ; CHECK: $r8 = IMPLICIT_DEF127 ; CHECK: $r9 = IMPLICIT_DEF128 ; CHECK: $r10 = IMPLICIT_DEF129 ; CHECK: $r11 = IMPLICIT_DEF130 ; CHECK: $r12 = IMPLICIT_DEF131 ; CHECK: $lr = IMPLICIT_DEF132 ; CHECK: $r11 = t2LDRi12 $sp, 4092, 14 /* CC::al */, $noreg :: (load (s32))133 ; CHECK: KILL $r0134 ; CHECK: KILL $r1135 ; CHECK: KILL $r2136 ; CHECK: KILL $r3137 ; CHECK: KILL $r4138 ; CHECK: KILL $r5139 ; CHECK: KILL $r6140 ; CHECK: KILL $r8141 ; CHECK: KILL $r9142 ; CHECK: KILL $r10143 ; CHECK: KILL $r11144 ; CHECK: KILL $r12145 ; CHECK: KILL $lr146 $r0 = IMPLICIT_DEF147 $r1 = IMPLICIT_DEF148 $r2 = IMPLICIT_DEF149 $r3 = IMPLICIT_DEF150 $r4 = IMPLICIT_DEF151 $r5 = IMPLICIT_DEF152 $r6 = IMPLICIT_DEF153 $r8 = IMPLICIT_DEF154 $r9 = IMPLICIT_DEF155 $r10 = IMPLICIT_DEF156 $r11 = IMPLICIT_DEF157 $r12 = IMPLICIT_DEF158 $lr = IMPLICIT_DEF159 160 $r11 = t2LDRi12 %fixed-stack.0, 0, 14, $noreg :: (load (s32))161 162 KILL $r0163 KILL $r1164 KILL $r2165 KILL $r3166 KILL $r4167 KILL $r5168 KILL $r6169 KILL $r8170 KILL $r9171 KILL $r10172 KILL $r11173 KILL $r12174 KILL $lr175...176