brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.2 KiB · 7634ecd Raw
355 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=arm-- -run-pass=prologepilog -run-pass=machine-outliner \3# RUN: -verify-machineinstrs %s -o - | FileCheck %s4 5--- |6  define void @outline_call_arm() #0 { ret void }7  define void @outline_call_thumb() #1 { ret void }8  define void @outline_call_tailcall_arm() #0 { ret void }9  define void @outline_call_tailcall_thumb() #1 { ret void }10  define void @outline_call_KO_mcount() #0 { ret void }11  define void @bar() #0 { ret void }12  declare void @"\01mcount"()13 14  attributes #0 = { minsize optsize }15  attributes #1 = { minsize optsize "target-features"="+armv7-a,+thumb-mode" }16...17---18 19name:           outline_call_arm20tracksRegLiveness: true21body:             |22  ; CHECK-LABEL: name: outline_call_arm23  ; CHECK: bb.0:24  ; CHECK:   liveins: $r4, $lr25  ; CHECK:   $sp = frame-setup STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $lr26  ; CHECK:   frame-setup CFI_INSTRUCTION def_cfa_offset 827  ; CHECK:   frame-setup CFI_INSTRUCTION offset $lr, -428  ; CHECK:   frame-setup CFI_INSTRUCTION offset $r4, -829  ; CHECK:   BL @OUTLINED_FUNCTION_230  ; CHECK: bb.1:31  ; CHECK:   BL @OUTLINED_FUNCTION_232  ; CHECK: bb.2:33  ; CHECK:   BL @OUTLINED_FUNCTION_234  ; CHECK: bb.3:35  ; CHECK:   BL @OUTLINED_FUNCTION_236  ; CHECK: bb.4:37  ; CHECK:   BL @OUTLINED_FUNCTION_238  ; CHECK: bb.5:39  ; CHECK:   $sp = frame-destroy LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r4, def $lr40  ; CHECK:   BX_RET 14 /* CC::al */, $noreg41  bb.0:42    BL @bar, implicit-def dead $lr, implicit $sp43    $r0 = MOVi 1, 14, $noreg, $noreg44    $r1 = MOVi 1, 14, $noreg, $noreg45    $r2 = MOVi 1, 14, $noreg, $noreg46    $r3 = MOVi 1, 14, $noreg, $noreg47    $r4 = MOVi 1, 14, $noreg, $noreg48  bb.1:49    BL @bar, implicit-def dead $lr, implicit $sp50    $r0 = MOVi 1, 14, $noreg, $noreg51    $r1 = MOVi 1, 14, $noreg, $noreg52    $r2 = MOVi 1, 14, $noreg, $noreg53    $r3 = MOVi 1, 14, $noreg, $noreg54    $r4 = MOVi 1, 14, $noreg, $noreg55  bb.2:56    BL @bar, implicit-def dead $lr, implicit $sp57    $r0 = MOVi 1, 14, $noreg, $noreg58    $r1 = MOVi 1, 14, $noreg, $noreg59    $r2 = MOVi 1, 14, $noreg, $noreg60    $r3 = MOVi 1, 14, $noreg, $noreg61    $r4 = MOVi 1, 14, $noreg, $noreg62  bb.3:63    BL @bar, implicit-def dead $lr, implicit $sp64    $r0 = MOVi 1, 14, $noreg, $noreg65    $r1 = MOVi 1, 14, $noreg, $noreg66    $r2 = MOVi 1, 14, $noreg, $noreg67    $r3 = MOVi 1, 14, $noreg, $noreg68    $r4 = MOVi 1, 14, $noreg, $noreg69  bb.4:70    BL @bar, implicit-def dead $lr, implicit $sp71    $r0 = MOVi 1, 14, $noreg, $noreg72    $r1 = MOVi 1, 14, $noreg, $noreg73    $r2 = MOVi 1, 14, $noreg, $noreg74    $r3 = MOVi 1, 14, $noreg, $noreg75    $r4 = MOVi 1, 14, $noreg, $noreg76  bb.5:77    BX_RET 14, $noreg78...79---80 81name:           outline_call_thumb82tracksRegLiveness: true83body:             |84  ; CHECK-LABEL: name: outline_call_thumb85  ; CHECK: bb.0:86  ; CHECK:   liveins: $r7, $lr87  ; CHECK:   $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr88  ; CHECK:   frame-setup CFI_INSTRUCTION def_cfa_offset 889  ; CHECK:   frame-setup CFI_INSTRUCTION offset $lr, -490  ; CHECK:   frame-setup CFI_INSTRUCTION offset $r7, -891  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_492  ; CHECK: bb.1:93  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_494  ; CHECK: bb.2:95  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_496  ; CHECK: bb.3:97  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_498  ; CHECK: bb.4:99  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_4100  ; CHECK: bb.5:101  ; CHECK:   $sp = frame-destroy t2LDMIA_RET $sp, 14 /* CC::al */, $noreg, def $r7, def $pc102  bb.0:103    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp104    $r0 = t2MOVi 1, 14, $noreg, $noreg105    $r1 = t2MOVi 1, 14, $noreg, $noreg106    $r2 = t2MOVi 1, 14, $noreg, $noreg107  bb.1:108    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp109    $r0 = t2MOVi 1, 14, $noreg, $noreg110    $r1 = t2MOVi 1, 14, $noreg, $noreg111    $r2 = t2MOVi 1, 14, $noreg, $noreg112  bb.2:113    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp114    $r0 = t2MOVi 1, 14, $noreg, $noreg115    $r1 = t2MOVi 1, 14, $noreg, $noreg116    $r2 = t2MOVi 1, 14, $noreg, $noreg117  bb.3:118    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp119    $r0 = t2MOVi 1, 14, $noreg, $noreg120    $r1 = t2MOVi 1, 14, $noreg, $noreg121    $r2 = t2MOVi 1, 14, $noreg, $noreg122  bb.4:123    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp124    $r0 = t2MOVi 1, 14, $noreg, $noreg125    $r1 = t2MOVi 1, 14, $noreg, $noreg126    $r2 = t2MOVi 1, 14, $noreg, $noreg127  bb.5:128    tBX_RET 14, $noreg129...130---131 132name:           outline_call_tailcall_arm133tracksRegLiveness: true134body:             |135  ; CHECK-LABEL: name: outline_call_tailcall_arm136  ; CHECK: bb.0:137  ; CHECK:   liveins: $r4, $lr138  ; CHECK:   $sp = frame-setup STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $lr139  ; CHECK:   frame-setup CFI_INSTRUCTION def_cfa_offset 8140  ; CHECK:   frame-setup CFI_INSTRUCTION offset $lr, -4141  ; CHECK:   frame-setup CFI_INSTRUCTION offset $r4, -8142  ; CHECK:   BL @OUTLINED_FUNCTION_0143  ; CHECK: bb.1:144  ; CHECK:   BL @OUTLINED_FUNCTION_0145  ; CHECK: bb.2:146  ; CHECK:   BL @OUTLINED_FUNCTION_0147  ; CHECK: bb.3:148  ; CHECK:   BL @OUTLINED_FUNCTION_0149  ; CHECK: bb.4:150  ; CHECK:   $sp = frame-destroy LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r4, def $lr151  ; CHECK:   BX_RET 14 /* CC::al */, $noreg152  bb.0:153    BL @bar, implicit-def dead $lr, implicit $sp154    $r0 = MOVi 2, 14, $noreg, $noreg155    $r1 = MOVi 2, 14, $noreg, $noreg156    $r2 = MOVi 2, 14, $noreg, $noreg157    $r3 = MOVi 2, 14, $noreg, $noreg158    $r4 = MOVi 2, 14, $noreg, $noreg159    BL @bar, implicit-def dead $lr, implicit $sp160  bb.1:161    BL @bar, implicit-def dead $lr, implicit $sp162    $r0 = MOVi 2, 14, $noreg, $noreg163    $r1 = MOVi 2, 14, $noreg, $noreg164    $r2 = MOVi 2, 14, $noreg, $noreg165    $r3 = MOVi 2, 14, $noreg, $noreg166    $r4 = MOVi 2, 14, $noreg, $noreg167    BL @bar, implicit-def dead $lr, implicit $sp168  bb.2:169    BL @bar, implicit-def dead $lr, implicit $sp170    $r0 = MOVi 2, 14, $noreg, $noreg171    $r1 = MOVi 2, 14, $noreg, $noreg172    $r2 = MOVi 2, 14, $noreg, $noreg173    $r3 = MOVi 2, 14, $noreg, $noreg174    $r4 = MOVi 2, 14, $noreg, $noreg175    BL @bar, implicit-def dead $lr, implicit $sp176  bb.3:177    BL @bar, implicit-def dead $lr, implicit $sp178    $r0 = MOVi 2, 14, $noreg, $noreg179    $r1 = MOVi 2, 14, $noreg, $noreg180    $r2 = MOVi 2, 14, $noreg, $noreg181    $r3 = MOVi 2, 14, $noreg, $noreg182    $r4 = MOVi 2, 14, $noreg, $noreg183    BL @bar, implicit-def dead $lr, implicit $sp184  bb.4:185    BX_RET 14, $noreg186...187---188 189name:           outline_call_tailcall_thumb190tracksRegLiveness: true191body:             |192  ; CHECK-LABEL: name: outline_call_tailcall_thumb193  ; CHECK: bb.0:194  ; CHECK:   liveins: $r7, $lr195  ; CHECK:   $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr196  ; CHECK:   frame-setup CFI_INSTRUCTION def_cfa_offset 8197  ; CHECK:   frame-setup CFI_INSTRUCTION offset $lr, -4198  ; CHECK:   frame-setup CFI_INSTRUCTION offset $r7, -8199  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_3200  ; CHECK: bb.1:201  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_3202  ; CHECK: bb.2:203  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_3204  ; CHECK: bb.3:205  ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_3206  ; CHECK: bb.4:207  ; CHECK:   $sp = frame-destroy t2LDMIA_RET $sp, 14 /* CC::al */, $noreg, def $r7, def $pc208  bb.0:209    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp210    $r0 = t2MOVi 2, 14, $noreg, $noreg211    $r1 = t2MOVi 2, 14, $noreg, $noreg212    $r2 = t2MOVi 2, 14, $noreg, $noreg213    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp214  bb.1:215    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp216    $r0 = t2MOVi 2, 14, $noreg, $noreg217    $r1 = t2MOVi 2, 14, $noreg, $noreg218    $r2 = t2MOVi 2, 14, $noreg, $noreg219    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp220  bb.2:221    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp222    $r0 = t2MOVi 2, 14, $noreg, $noreg223    $r1 = t2MOVi 2, 14, $noreg, $noreg224    $r2 = t2MOVi 2, 14, $noreg, $noreg225    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp226  bb.3:227    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp228    $r0 = t2MOVi 2, 14, $noreg, $noreg229    $r1 = t2MOVi 2, 14, $noreg, $noreg230    $r2 = t2MOVi 2, 14, $noreg, $noreg231    tBL 14, $noreg, @bar, implicit-def dead $lr, implicit $sp232  bb.4:233    tBX_RET 14, $noreg234...235---236 237name:           outline_call_KO_mcount238tracksRegLiveness: true239body:             |240  ; CHECK-LABEL: name: outline_call_KO_mcount241  ; CHECK: bb.0:242  ; CHECK:   liveins: $r4, $lr243  ; CHECK:   $sp = frame-setup STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $lr244  ; CHECK:   frame-setup CFI_INSTRUCTION def_cfa_offset 8245  ; CHECK:   frame-setup CFI_INSTRUCTION offset $lr, -4246  ; CHECK:   frame-setup CFI_INSTRUCTION offset $r4, -8247  ; CHECK:   BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp248  ; CHECK:   BL @OUTLINED_FUNCTION_1249  ; CHECK: bb.1:250  ; CHECK:   BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp251  ; CHECK:   BL @OUTLINED_FUNCTION_1252  ; CHECK: bb.2:253  ; CHECK:   BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp254  ; CHECK:   BL @OUTLINED_FUNCTION_1255  ; CHECK: bb.3:256  ; CHECK:   BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp257  ; CHECK:   BL @OUTLINED_FUNCTION_1258  ; CHECK: bb.4:259  ; CHECK:   BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp260  ; CHECK:   BL @OUTLINED_FUNCTION_1261  ; CHECK: bb.5:262  ; CHECK:   $sp = frame-destroy LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r4, def $lr263  ; CHECK:   BX_RET 14 /* CC::al */, $noreg264  bb.0:265    BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp266    $r0 = MOVi 3, 14, $noreg, $noreg267    $r1 = MOVi 3, 14, $noreg, $noreg268    $r2 = MOVi 3, 14, $noreg, $noreg269    $r3 = MOVi 3, 14, $noreg, $noreg270    $r4 = MOVi 3, 14, $noreg, $noreg271  bb.1:272    BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp273    $r0 = MOVi 3, 14, $noreg, $noreg274    $r1 = MOVi 3, 14, $noreg, $noreg275    $r2 = MOVi 3, 14, $noreg, $noreg276    $r3 = MOVi 3, 14, $noreg, $noreg277    $r4 = MOVi 3, 14, $noreg, $noreg278  bb.2:279    BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp280    $r0 = MOVi 3, 14, $noreg, $noreg281    $r1 = MOVi 3, 14, $noreg, $noreg282    $r2 = MOVi 3, 14, $noreg, $noreg283    $r3 = MOVi 3, 14, $noreg, $noreg284    $r4 = MOVi 3, 14, $noreg, $noreg285  bb.3:286    BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp287    $r0 = MOVi 3, 14, $noreg, $noreg288    $r1 = MOVi 3, 14, $noreg, $noreg289    $r2 = MOVi 3, 14, $noreg, $noreg290    $r3 = MOVi 3, 14, $noreg, $noreg291    $r4 = MOVi 3, 14, $noreg, $noreg292  bb.4:293    BL @"\01mcount", csr_aapcs, implicit-def dead $lr, implicit $sp294    $r0 = MOVi 3, 14, $noreg, $noreg295    $r1 = MOVi 3, 14, $noreg, $noreg296    $r2 = MOVi 3, 14, $noreg, $noreg297    $r3 = MOVi 3, 14, $noreg, $noreg298    $r4 = MOVi 3, 14, $noreg, $noreg299  bb.5:300    BX_RET 14, $noreg301...302---303 304name:           bar305tracksRegLiveness: true306body:             |307  bb.0:308    BX_RET 14, $noreg309 310  ; CHECK-LABEL: name: OUTLINED_FUNCTION_0311  ; CHECK: bb.0:312  ; CHECK:   liveins: $r11, $r10, $r9, $r8, $r7, $r6, $r5, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8313  ; CHECK:   $r0 = MOVi 2, 14 /* CC::al */, $noreg, $noreg314  ; CHECK:   $r1 = MOVi 2, 14 /* CC::al */, $noreg, $noreg315  ; CHECK:   $r2 = MOVi 2, 14 /* CC::al */, $noreg, $noreg316  ; CHECK:   $r3 = MOVi 2, 14 /* CC::al */, $noreg, $noreg317  ; CHECK:   $r4 = MOVi 2, 14 /* CC::al */, $noreg, $noreg318  ; CHECK:   TAILJMPd @bar, implicit $sp319 320  ; CHECK-LABEL: name: OUTLINED_FUNCTION_1321  ; CHECK: bb.0:322  ; CHECK:   liveins: $r11, $r10, $r9, $r8, $r7, $r6, $r5, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8323  ; CHECK:   $r0 = MOVi 3, 14 /* CC::al */, $noreg, $noreg324  ; CHECK:   $r1 = MOVi 3, 14 /* CC::al */, $noreg, $noreg325  ; CHECK:   $r2 = MOVi 3, 14 /* CC::al */, $noreg, $noreg326  ; CHECK:   $r3 = MOVi 3, 14 /* CC::al */, $noreg, $noreg327  ; CHECK:   $r4 = MOVi 3, 14 /* CC::al */, $noreg, $noreg328  ; CHECK:   MOVPCLR 14 /* CC::al */, $noreg329 330  ; CHECK-LABEL: name: OUTLINED_FUNCTION_2331  ; CHECK: bb.0:332  ; CHECK:   liveins: $r11, $r10, $r9, $r8, $r7, $r6, $r5, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8333  ; CHECK:   $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg334  ; CHECK:   $r1 = MOVi 1, 14 /* CC::al */, $noreg, $noreg335  ; CHECK:   $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg336  ; CHECK:   $r3 = MOVi 1, 14 /* CC::al */, $noreg, $noreg337  ; CHECK:   $r4 = MOVi 1, 14 /* CC::al */, $noreg, $noreg338  ; CHECK:   MOVPCLR 14 /* CC::al */, $noreg339 340  ; CHECK-LABEL: name: OUTLINED_FUNCTION_3341  ; CHECK: bb.0:342  ; CHECK:   liveins: $r11, $r10, $r9, $r8, $r6, $r5, $r4, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8343  ; CHECK:   $r0 = t2MOVi 2, 14 /* CC::al */, $noreg, $noreg344  ; CHECK:   $r1 = t2MOVi 2, 14 /* CC::al */, $noreg, $noreg345  ; CHECK:   $r2 = t2MOVi 2, 14 /* CC::al */, $noreg, $noreg346  ; CHECK:   tTAILJMPdND @bar, 14 /* CC::al */, $noreg, implicit $sp347 348  ; CHECK-LABEL: name: OUTLINED_FUNCTION_4349  ; CHECK: bb.0:350  ; CHECK:   liveins: $r11, $r10, $r9, $r8, $r6, $r5, $r4, $d15, $d14, $d13, $d12, $d11, $d10, $d9, $d8351  ; CHECK:   $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg352  ; CHECK:   $r1 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg353  ; CHECK:   $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg354  ; CHECK:   tBX_RET 14 /* CC::al */, $noreg355