brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.2 KiB · 47ede6a Raw
388 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=cfi-fixup %s -o - | FileCheck %s3--- |4  define i32 @f0(i32 %x) #0 {5  entry: br label %return6  if.end: br label %return7  if.then2: br label %return8  if.else: br label %return9  return:10    ret i32 011  }12 13  define i32 @f1(i32 %x) #1 {14  entry: br label %return15  if.end: br label %return16  if.then2: br label %return17  if.else: br label %return18  return:19    ret i32 020  }21 22  declare i32 @g(i32)23 24  attributes #0 = { nounwind shadowcallstack uwtable "sign-return-address"="non-leaf" "target-features"="+reserve-x18" }25  attributes #1 = { nounwind shadowcallstack uwtable(sync) "sign-return-address"="non-leaf" "target-features"="+reserve-x18" }26 27...28---29name:            f030alignment:       431exposesReturnsTwice: false32legalized:       false33regBankSelected: false34selected:        false35failedISel:      false36tracksRegLiveness: true37hasWinCFI:       false38failsVerification: false39registers:       []40liveins:41  - { reg: '$w0', virtual-reg: '' }42frameInfo:43  isFrameAddressTaken: false44  isReturnAddressTaken: false45  hasStackMap:     false46  hasPatchPoint:   false47  stackSize:       1648  offsetAdjustment: 049  maxAlignment:    1650  adjustsStack:    true51  hasCalls:        true52  stackProtector:  ''53  maxCallFrameSize: 054  cvBytesOfCalleeSavedRegisters: 055  hasOpaqueSPAdjustment: false56  hasVAStart:      false57  hasMustTailInVarArgFunc: false58  hasTailCall:     false59  localFrameSize:  060  savePoint:       []61  restorePoint:    []62fixedStack:      []63stack:64  - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16,65      stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,66      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }67callSites:       []68debugValueSubstitutions: []69constants:       []70machineFunctionInfo:71  hasRedZone:      false72body:             |73  ; CHECK-LABEL: name: f074  ; CHECK: bb.0.entry:75  ; CHECK-NEXT:   successors: %bb.4(0x30000000), %bb.1(0x50000000)76  ; CHECK-NEXT:   liveins: $w0, $lr, $x1877  ; CHECK-NEXT: {{  $}}78  ; CHECK-NEXT:   CBZW renamable $w0, %bb.479  ; CHECK-NEXT: {{  $}}80  ; CHECK-NEXT: bb.1.if.end:81  ; CHECK-NEXT:   successors: %bb.3(0x30000000), %bb.2(0x50000000)82  ; CHECK-NEXT:   liveins: $w0, $lr, $x1883  ; CHECK-NEXT: {{  $}}84  ; CHECK-NEXT:   early-clobber $x18 = frame-setup STRXpost $lr, $x18, 885  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x7886  ; CHECK-NEXT:   frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp87  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION negate_ra_sign_state88  ; CHECK-NEXT:   early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)89  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION def_cfa_offset 1690  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION offset $w30, -1691  ; CHECK-NEXT:   CFI_INSTRUCTION remember_state92  ; CHECK-NEXT:   TBNZW renamable $w0, 31, %bb.393  ; CHECK-NEXT: {{  $}}94  ; CHECK-NEXT: bb.2.if.else:95  ; CHECK-NEXT:   successors: %bb.5(0x80000000)96  ; CHECK-NEXT:   liveins: $w097  ; CHECK-NEXT: {{  $}}98  ; CHECK-NEXT:   renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 099  ; CHECK-NEXT:   BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0100  ; CHECK-NEXT:   renamable $w8 = MOVZWi 1, 0101  ; CHECK-NEXT:   $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0102  ; CHECK-NEXT:   B %bb.5103  ; CHECK-NEXT: {{  $}}104  ; CHECK-NEXT: bb.3.if.then2 (bbsections 1):105  ; CHECK-NEXT:   successors: %bb.5(0x80000000)106  ; CHECK-NEXT:   liveins: $w0107  ; CHECK-NEXT: {{  $}}108  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78109  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION negate_ra_sign_state110  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION def_cfa_offset 16111  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION offset $w30, -16112  ; CHECK-NEXT:   renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0113  ; CHECK-NEXT:   BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0114  ; CHECK-NEXT:   renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0115  ; CHECK-NEXT:   B %bb.5116  ; CHECK-NEXT: {{  $}}117  ; CHECK-NEXT: bb.4.return:118  ; CHECK-NEXT:   liveins: $w0119  ; CHECK-NEXT: {{  $}}120  ; CHECK-NEXT:   RET undef $lr, implicit killed $w0121  ; CHECK-NEXT: {{  $}}122  ; CHECK-NEXT: bb.5.return:123  ; CHECK-NEXT:   successors: %bb.7(0x80000000)124  ; CHECK-NEXT:   liveins: $w0125  ; CHECK-NEXT: {{  $}}126  ; CHECK-NEXT:   CFI_INSTRUCTION restore_state127  ; CHECK-NEXT:   CFI_INSTRUCTION remember_state128  ; CHECK-NEXT:   B %bb.7129  ; CHECK-NEXT: {{  $}}130  ; CHECK-NEXT: bb.6.return:131  ; CHECK-NEXT:   liveins: $w0132  ; CHECK-NEXT: {{  $}}133  ; CHECK-NEXT:   early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)134  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 0135  ; CHECK-NEXT:   frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp136  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION negate_ra_sign_state137  ; CHECK-NEXT:   early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8138  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w18139  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w30140  ; CHECK-NEXT:   RET undef $lr, implicit killed $w0141  ; CHECK-NEXT: {{  $}}142  ; CHECK-NEXT: bb.7.return:143  ; CHECK-NEXT:   successors: %bb.6(0x80000000)144  ; CHECK-NEXT:   liveins: $w0145  ; CHECK-NEXT: {{  $}}146  ; CHECK-NEXT:   CFI_INSTRUCTION restore_state147  ; CHECK-NEXT:   B %bb.6148  bb.0.entry:149    successors: %bb.4(0x30000000), %bb.1(0x50000000)150    liveins: $w0, $lr, $x18151 152    CBZW renamable $w0, %bb.4153 154  bb.1.if.end:155    successors: %bb.3(0x30000000), %bb.2(0x50000000)156    liveins: $w0, $lr, $x18157 158    early-clobber $x18 = frame-setup STRXpost $lr, $x18, 8159    frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78160    frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp161    frame-setup CFI_INSTRUCTION negate_ra_sign_state162    early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)163    frame-setup CFI_INSTRUCTION def_cfa_offset 16164    frame-setup CFI_INSTRUCTION offset $w30, -16165    TBNZW renamable $w0, 31, %bb.3166 167  bb.2.if.else:168    successors: %bb.5(0x80000000)169    liveins: $w0170 171    renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0172    BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0173    renamable $w8 = MOVZWi 1, 0174    $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0175    B %bb.5176 177  bb.3.if.then2 (bbsections 1):178    successors: %bb.5(0x80000000)179    liveins: $w0180 181    renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0182    BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0183    renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0184    B %bb.5185 186  bb.4.return:187    liveins: $w0188    RET undef $lr, implicit killed $w0189 190  bb.5.return:191    liveins: $w0192    B %bb.6193 194  bb.7.return:195    liveins: $w0196    early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)197    frame-destroy CFI_INSTRUCTION def_cfa_offset 0198    frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp199    frame-destroy CFI_INSTRUCTION negate_ra_sign_state200    early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8201    frame-destroy CFI_INSTRUCTION restore $w18202    frame-destroy CFI_INSTRUCTION restore $w30203    RET undef $lr, implicit killed $w0204 205  bb.6.return:206    liveins: $w0207    B %bb.7208 209 210...211---212name:            f1213alignment:       4214exposesReturnsTwice: false215legalized:       false216regBankSelected: false217selected:        false218failedISel:      false219tracksRegLiveness: true220hasWinCFI:       false221failsVerification: false222registers:       []223liveins:224  - { reg: '$w0', virtual-reg: '' }225frameInfo:226  isFrameAddressTaken: false227  isReturnAddressTaken: false228  hasStackMap:     false229  hasPatchPoint:   false230  stackSize:       16231  offsetAdjustment: 0232  maxAlignment:    16233  adjustsStack:    true234  hasCalls:        true235  stackProtector:  ''236  maxCallFrameSize: 0237  cvBytesOfCalleeSavedRegisters: 0238  hasOpaqueSPAdjustment: false239  hasVAStart:      false240  hasMustTailInVarArgFunc: false241  hasTailCall:     false242  localFrameSize:  0243  savePoint:       []244  restorePoint:    []245fixedStack:      []246stack:247  - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16,248      stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,249      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }250callSites:       []251debugValueSubstitutions: []252constants:       []253body:             |254  ; CHECK-LABEL: name: f1255  ; CHECK: bb.0.entry:256  ; CHECK-NEXT:   successors: %bb.4(0x30000000), %bb.1(0x50000000)257  ; CHECK-NEXT:   liveins: $w0, $lr, $x18258  ; CHECK-NEXT: {{  $}}259  ; CHECK-NEXT:   CBZW renamable $w0, %bb.4260  ; CHECK-NEXT: {{  $}}261  ; CHECK-NEXT: bb.1.if.end:262  ; CHECK-NEXT:   successors: %bb.3(0x30000000), %bb.2(0x50000000)263  ; CHECK-NEXT:   liveins: $w0, $lr, $x18264  ; CHECK-NEXT: {{  $}}265  ; CHECK-NEXT:   early-clobber $x18 = frame-setup STRXpost $lr, $x18, 8266  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78267  ; CHECK-NEXT:   frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp268  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION negate_ra_sign_state269  ; CHECK-NEXT:   early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)270  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION def_cfa_offset 16271  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION offset $w30, -16272  ; CHECK-NEXT:   TBNZW renamable $w0, 31, %bb.3273  ; CHECK-NEXT: {{  $}}274  ; CHECK-NEXT: bb.2.if.else:275  ; CHECK-NEXT:   successors: %bb.5(0x80000000)276  ; CHECK-NEXT:   liveins: $w0277  ; CHECK-NEXT: {{  $}}278  ; CHECK-NEXT:   renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0279  ; CHECK-NEXT:   BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0280  ; CHECK-NEXT:   renamable $w8 = MOVZWi 1, 0281  ; CHECK-NEXT:   $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0282  ; CHECK-NEXT:   B %bb.5283  ; CHECK-NEXT: {{  $}}284  ; CHECK-NEXT: bb.3.if.then2 (bbsections 1):285  ; CHECK-NEXT:   successors: %bb.5(0x80000000)286  ; CHECK-NEXT:   liveins: $w0287  ; CHECK-NEXT: {{  $}}288  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78289  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION negate_ra_sign_state290  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION def_cfa_offset 16291  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION offset $w30, -16292  ; CHECK-NEXT:   renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0293  ; CHECK-NEXT:   BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0294  ; CHECK-NEXT:   renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0295  ; CHECK-NEXT:   B %bb.5296  ; CHECK-NEXT: {{  $}}297  ; CHECK-NEXT: bb.4.return:298  ; CHECK-NEXT:   liveins: $w0299  ; CHECK-NEXT: {{  $}}300  ; CHECK-NEXT:   RET undef $lr, implicit killed $w0301  ; CHECK-NEXT: {{  $}}302  ; CHECK-NEXT: bb.5.return:303  ; CHECK-NEXT:   successors: %bb.7(0x80000000)304  ; CHECK-NEXT:   liveins: $w0305  ; CHECK-NEXT: {{  $}}306  ; CHECK-NEXT:   B %bb.7307  ; CHECK-NEXT: {{  $}}308  ; CHECK-NEXT: bb.6.return:309  ; CHECK-NEXT:   liveins: $w0310  ; CHECK-NEXT: {{  $}}311  ; CHECK-NEXT:   early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)312  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 0313  ; CHECK-NEXT:   frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp314  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION negate_ra_sign_state315  ; CHECK-NEXT:   early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8316  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w18317  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w30318  ; CHECK-NEXT:   RET undef $lr, implicit killed $w0319  ; CHECK-NEXT: {{  $}}320  ; CHECK-NEXT: bb.7.return:321  ; CHECK-NEXT:   successors: %bb.6(0x80000000)322  ; CHECK-NEXT:   liveins: $w0323  ; CHECK-NEXT: {{  $}}324  ; CHECK-NEXT:   B %bb.6325  bb.0.entry:326    successors: %bb.4(0x30000000), %bb.1(0x50000000)327    liveins: $w0, $lr, $x18328 329    CBZW renamable $w0, %bb.4330 331  bb.1.if.end:332    successors: %bb.3(0x30000000), %bb.2(0x50000000)333    liveins: $w0, $lr, $x18334 335    early-clobber $x18 = frame-setup STRXpost $lr, $x18, 8336    frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78337    frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp338    frame-setup CFI_INSTRUCTION negate_ra_sign_state339    early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)340    frame-setup CFI_INSTRUCTION def_cfa_offset 16341    frame-setup CFI_INSTRUCTION offset $w30, -16342    TBNZW renamable $w0, 31, %bb.3343 344  bb.2.if.else:345    successors: %bb.5(0x80000000)346    liveins: $w0347 348    renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0349    BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0350    renamable $w8 = MOVZWi 1, 0351    $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0352    B %bb.5353 354  bb.3.if.then2 (bbsections 1):355    successors: %bb.5(0x80000000)356    liveins: $w0357 358    renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0359    BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0360    renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0361    B %bb.5362 363  bb.4.return:364    liveins: $w0365    RET undef $lr, implicit killed $w0366 367  bb.5.return:368    liveins: $w0369    B %bb.6370 371  bb.7.return:372    liveins: $w0373    early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)374    frame-destroy CFI_INSTRUCTION def_cfa_offset 0375    frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp376    frame-destroy CFI_INSTRUCTION negate_ra_sign_state377    early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8378    frame-destroy CFI_INSTRUCTION restore $w18379    frame-destroy CFI_INSTRUCTION restore $w30380    RET undef $lr, implicit killed $w0381 382  bb.6.return:383    liveins: $w0384    B %bb.7385 386 387...388