brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.7 KiB · d696776 Raw
309 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -run-pass=cfi-fixup %s -o - | FileCheck %s3--- |4  source_filename = "cfi-fixup.ll"5  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"6  target triple = "aarch64-linux"7 8  define i32 @f(i32 %x) #0 {9  entry:10    %p = alloca i8, i32 30000, align 111    switch i32 %x, label %if.end7 [12      i32 0, label %return13      i32 1, label %if.then214      i32 2, label %if.then515    ]16 17  if.then2:                                         ; preds = %entry18    %call = tail call i32 @g1(i32 1)19    %add = add nsw i32 %call, 120    br label %return21 22  if.then5:                                         ; preds = %entry23    %call6 = tail call i32 @g0(i32 2)24    %sub = sub nsw i32 1, %call625    br label %return26 27  if.end7:                                          ; preds = %entry28    br label %return29 30  return:                                           ; preds = %if.end7, %if.then5, %if.then2, %entry31    %retval.0 = phi i32 [ %add, %if.then2 ], [ %sub, %if.then5 ], [ 0, %if.end7 ], [ 1, %entry ]32    ret i32 %retval.033  }34 35  declare i32 @g1(i32)36 37  declare i32 @g0(i32)38 39  attributes #0 = { uwtable "probe-stack"="inline-asm" }40 41...42---43name:            f44alignment:       445exposesReturnsTwice: false46legalized:       false47regBankSelected: false48selected:        false49failedISel:      false50tracksRegLiveness: true51hasWinCFI:       false52callsEHReturn:   false53callsUnwindInit: false54hasEHContTarget: false55hasEHScopes:     false56hasEHFunclets:   false57isOutlined:      false58debugInstrRef:   false59failsVerification: false60tracksDebugUserValues: true61registers:       []62liveins:63  - { reg: '$w0', virtual-reg: '' }64frameInfo:65  isFrameAddressTaken: false66  isReturnAddressTaken: false67  hasStackMap:     false68  hasPatchPoint:   false69  stackSize:       3001670  offsetAdjustment: 071  maxAlignment:    872  adjustsStack:    true73  hasCalls:        true74  stackProtector:  ''75  functionContext: ''76  maxCallFrameSize: 077  cvBytesOfCalleeSavedRegisters: 078  hasOpaqueSPAdjustment: false79  hasVAStart:      false80  hasMustTailInVarArgFunc: false81  hasTailCall:     false82  localFrameSize:  3000083  savePoint:       []84  restorePoint:    []85fixedStack:      []86stack:87  - { id: 0, name: p, type: default, offset: -30016, size: 30000, alignment: 1,88      stack-id: default, callee-saved-register: '', callee-saved-restored: true,89      local-offset: -30000, debug-info-variable: '', debug-info-expression: '',90      debug-info-location: '' }91  - { id: 1, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8,92      stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,93      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }94  - { id: 2, name: '', type: spill-slot, offset: -16, size: 8, alignment: 8,95      stack-id: default, callee-saved-register: '$fp', callee-saved-restored: true,96      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }97entry_values:    []98callSites:       []99debugValueSubstitutions: []100constants:       []101machineFunctionInfo:102  hasRedZone:      false103body:             |104  ; CHECK-LABEL: name: f105  ; CHECK: bb.0.entry:106  ; CHECK-NEXT:   successors: %bb.1(0x80000000)107  ; CHECK-NEXT:   liveins: $w0, $lr, $fp108  ; CHECK-NEXT: {{  $}}109  ; CHECK-NEXT:   early-clobber $sp = frame-setup STPXpre killed $fp, killed $lr, $sp, -2 :: (store (s64) into %stack.2), (store (s64) into %stack.1)110  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION def_cfa_offset 16111  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION offset $w30, -8112  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION offset $w29, -16113  ; CHECK-NEXT:   $x9 = frame-setup SUBXri $sp, 7, 12114  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION def_cfa $w9, 28688115  ; CHECK-NEXT: {{  $}}116  ; CHECK-NEXT: bb.1.entry:117  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)118  ; CHECK-NEXT:   liveins: $x9119  ; CHECK-NEXT: {{  $}}120  ; CHECK-NEXT:   $sp = frame-setup SUBXri $sp, 1, 12121  ; CHECK-NEXT:   $xzr = frame-setup SUBSXrx64 $sp, $x9, 24, implicit-def $nzcv122  ; CHECK-NEXT:   frame-setup STRXui $xzr, $sp, 0123  ; CHECK-NEXT:   frame-setup Bcc 1, %bb.1, implicit killed $nzcv124  ; CHECK-NEXT: {{  $}}125  ; CHECK-NEXT: bb.2.entry:126  ; CHECK-NEXT:   successors: %bb.6(0x20000000), %bb.3(0x60000000)127  ; CHECK-NEXT:   liveins: $w0128  ; CHECK-NEXT: {{  $}}129  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION def_cfa_register $wsp130  ; CHECK-NEXT:   $sp = frame-setup SUBXri $sp, 1328, 0131  ; CHECK-NEXT:   frame-setup CFI_INSTRUCTION def_cfa_offset 30016132  ; CHECK-NEXT:   CFI_INSTRUCTION remember_state133  ; CHECK-NEXT:   frame-setup STRXui $xzr, $sp, 0134  ; CHECK-NEXT:   CBZW renamable $w0, %bb.6135  ; CHECK-NEXT: {{  $}}136  ; CHECK-NEXT: bb.3.entry:137  ; CHECK-NEXT:   successors: %bb.7(0x2aaaaaab), %bb.4(0x55555555)138  ; CHECK-NEXT:   liveins: $w0139  ; CHECK-NEXT: {{  $}}140  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w0, 2, 0, implicit-def $nzcv141  ; CHECK-NEXT:   Bcc 0, %bb.7, implicit killed $nzcv142  ; CHECK-NEXT: {{  $}}143  ; CHECK-NEXT: bb.4.entry:144  ; CHECK-NEXT:   successors: %bb.5(0x40000000), %bb.8(0x40000000)145  ; CHECK-NEXT:   liveins: $w0146  ; CHECK-NEXT: {{  $}}147  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w0, 1, 0, implicit-def $nzcv148  ; CHECK-NEXT:   Bcc 1, %bb.8, implicit killed $nzcv149  ; CHECK-NEXT: {{  $}}150  ; CHECK-NEXT: bb.5.if.then2:151  ; CHECK-NEXT:   liveins: $w0152  ; CHECK-NEXT: {{  $}}153  ; CHECK-NEXT:   BL @g1, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0154  ; CHECK-NEXT:   renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0155  ; CHECK-NEXT:   $sp = frame-destroy ADDXri $sp, 7, 12156  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 1344157  ; CHECK-NEXT:   $sp = frame-destroy ADDXri $sp, 1328, 0158  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 16159  ; CHECK-NEXT:   early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.2), (load (s64) from %stack.1)160  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 0161  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w30162  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w29163  ; CHECK-NEXT:   RET undef $lr, implicit killed $w0164  ; CHECK-NEXT: {{  $}}165  ; CHECK-NEXT: bb.6:166  ; CHECK-NEXT:   CFI_INSTRUCTION restore_state167  ; CHECK-NEXT:   CFI_INSTRUCTION remember_state168  ; CHECK-NEXT:   renamable $w0 = MOVZWi 1, 0169  ; CHECK-NEXT:   $sp = frame-destroy ADDXri $sp, 7, 12170  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 1344171  ; CHECK-NEXT:   $sp = frame-destroy ADDXri $sp, 1328, 0172  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 16173  ; CHECK-NEXT:   early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.2), (load (s64) from %stack.1)174  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 0175  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w30176  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w29177  ; CHECK-NEXT:   RET undef $lr, implicit killed $w0178  ; CHECK-NEXT: {{  $}}179  ; CHECK-NEXT: bb.7.if.then5:180  ; CHECK-NEXT:   liveins: $w0181  ; CHECK-NEXT: {{  $}}182  ; CHECK-NEXT:   CFI_INSTRUCTION restore_state183  ; CHECK-NEXT:   CFI_INSTRUCTION remember_state184  ; CHECK-NEXT:   BL @g0, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0185  ; CHECK-NEXT:   renamable $w8 = MOVZWi 1, 0186  ; CHECK-NEXT:   $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0187  ; CHECK-NEXT:   $sp = frame-destroy ADDXri $sp, 7, 12188  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 1344189  ; CHECK-NEXT:   $sp = frame-destroy ADDXri $sp, 1328, 0190  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 16191  ; CHECK-NEXT:   early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.2), (load (s64) from %stack.1)192  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 0193  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w30194  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w29195  ; CHECK-NEXT:   RET undef $lr, implicit killed $w0196  ; CHECK-NEXT: {{  $}}197  ; CHECK-NEXT: bb.8.if.end7:198  ; CHECK-NEXT:   CFI_INSTRUCTION restore_state199  ; CHECK-NEXT:   $w0 = ORRWrs $wzr, $wzr, 0200  ; CHECK-NEXT:   $sp = frame-destroy ADDXri $sp, 7, 12201  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 1344202  ; CHECK-NEXT:   $sp = frame-destroy ADDXri $sp, 1328, 0203  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 16204  ; CHECK-NEXT:   early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.2), (load (s64) from %stack.1)205  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION def_cfa_offset 0206  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w30207  ; CHECK-NEXT:   frame-destroy CFI_INSTRUCTION restore $w29208  ; CHECK-NEXT:   RET undef $lr, implicit killed $w0209  bb.0.entry:210    successors: %bb.1(0x80000000)211    liveins: $w0, $lr, $fp212 213    early-clobber $sp = frame-setup STPXpre killed $fp, killed $lr, $sp, -2 :: (store (s64) into %stack.2), (store (s64) into %stack.1)214    frame-setup CFI_INSTRUCTION def_cfa_offset 16215    frame-setup CFI_INSTRUCTION offset $w30, -8216    frame-setup CFI_INSTRUCTION offset $w29, -16217    $x9 = frame-setup SUBXri $sp, 7, 12218    frame-setup CFI_INSTRUCTION def_cfa $w9, 28688219 220  bb.1.entry:221    successors: %bb.2(0x40000000), %bb.1(0x40000000)222    liveins: $x9223 224    $sp = frame-setup SUBXri $sp, 1, 12225    $xzr = frame-setup SUBSXrx64 $sp, $x9, 24, implicit-def $nzcv226    frame-setup STRXui $xzr, $sp, 0227    frame-setup Bcc 1, %bb.1, implicit killed $nzcv228 229  bb.2.entry:230    successors: %bb.6(0x20000000), %bb.3(0x60000000)231    liveins: $w0232 233    frame-setup CFI_INSTRUCTION def_cfa_register $wsp234    $sp = frame-setup SUBXri $sp, 1328, 0235    frame-setup CFI_INSTRUCTION def_cfa_offset 30016236    frame-setup STRXui $xzr, $sp, 0237    CBZW renamable $w0, %bb.6238 239  bb.3.entry:240    successors: %bb.7(0x2aaaaaab), %bb.4(0x55555555)241    liveins: $w0242 243    dead $wzr = SUBSWri renamable $w0, 2, 0, implicit-def $nzcv244    Bcc 0, %bb.7, implicit killed $nzcv245 246  bb.4.entry:247    successors: %bb.5(0x40000000), %bb.8(0x40000000)248    liveins: $w0249 250    dead $wzr = SUBSWri renamable $w0, 1, 0, implicit-def $nzcv251    Bcc 1, %bb.8, implicit killed $nzcv252 253  bb.5.if.then2:254    liveins: $w0255 256    BL @g1, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0257    renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0258    $sp = frame-destroy ADDXri $sp, 7, 12259    frame-destroy CFI_INSTRUCTION def_cfa_offset 1344260    $sp = frame-destroy ADDXri $sp, 1328, 0261    frame-destroy CFI_INSTRUCTION def_cfa_offset 16262    early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.2), (load (s64) from %stack.1)263    frame-destroy CFI_INSTRUCTION def_cfa_offset 0264    frame-destroy CFI_INSTRUCTION restore $w30265    frame-destroy CFI_INSTRUCTION restore $w29266    RET undef $lr, implicit killed $w0267 268  bb.6:269    renamable $w0 = MOVZWi 1, 0270    $sp = frame-destroy ADDXri $sp, 7, 12271    frame-destroy CFI_INSTRUCTION def_cfa_offset 1344272    $sp = frame-destroy ADDXri $sp, 1328, 0273    frame-destroy CFI_INSTRUCTION def_cfa_offset 16274    early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.2), (load (s64) from %stack.1)275    frame-destroy CFI_INSTRUCTION def_cfa_offset 0276    frame-destroy CFI_INSTRUCTION restore $w30277    frame-destroy CFI_INSTRUCTION restore $w29278    RET undef $lr, implicit killed $w0279 280  bb.7.if.then5:281    liveins: $w0282 283    BL @g0, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0284    renamable $w8 = MOVZWi 1, 0285    $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0286    $sp = frame-destroy ADDXri $sp, 7, 12287    frame-destroy CFI_INSTRUCTION def_cfa_offset 1344288    $sp = frame-destroy ADDXri $sp, 1328, 0289    frame-destroy CFI_INSTRUCTION def_cfa_offset 16290    early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.2), (load (s64) from %stack.1)291    frame-destroy CFI_INSTRUCTION def_cfa_offset 0292    frame-destroy CFI_INSTRUCTION restore $w30293    frame-destroy CFI_INSTRUCTION restore $w29294    RET undef $lr, implicit killed $w0295 296  bb.8.if.end7:297    $w0 = ORRWrs $wzr, $wzr, 0298    $sp = frame-destroy ADDXri $sp, 7, 12299    frame-destroy CFI_INSTRUCTION def_cfa_offset 1344300    $sp = frame-destroy ADDXri $sp, 1328, 0301    frame-destroy CFI_INSTRUCTION def_cfa_offset 16302    early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.2), (load (s64) from %stack.1)303    frame-destroy CFI_INSTRUCTION def_cfa_offset 0304    frame-destroy CFI_INSTRUCTION restore $w30305    frame-destroy CFI_INSTRUCTION restore $w29306    RET undef $lr, implicit killed $w0307 308...309