207 lines · plain
1# The content of this test is modfied upon the output obtained from running2# `bin/llc -O2 -stop-before=machine-outliner <path_to_llvm_project>/llvm/test/CodeGen/AArch64/machine-outliner-sort-per-priority.ll -o -`3# RUN: llc -mtriple=aarch64 -run-pass=machine-outliner -verify-machineinstrs %s -o - | FileCheck %s4 5--- |6 declare i32 @foo()7 8 define void @f1() #0 { ret void }9 define void @f2() #0 { ret void }10 define void @f3() #0 { ret void }11 define void @f4() #0 { ret void }12 define void @f5() #0 { ret void }13 define void @f6() #0 { ret void }14 15 attributes #0 = { minsize }16...17---18# CHECK-LABEL: name: f119# CHECK-LABEL: bb.0:20# CHECK-NEXT: liveins: $lr21# CHECK-NEXT: {{ $}}22# CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 023# CHECK-NEXT: BL @OUTLINED_FUNCTION_124# CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 025# CHECK-NEXT: $w5 = MOVZWi 11, 026# CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_027name: f128tracksRegLiveness: true29frameInfo:30 isCalleeSavedInfoValid: true31machineFunctionInfo:32 hasRedZone: false33body: |34 bb.0:35 $w0 = MOVZWi 1, 036 $w1 = MOVZWi 2, 037 $w2 = MOVZWi 3, 038 $w3 = MOVZWi 4, 039 $w4 = MOVZWi 5, 040 $w5 = MOVZWi 11, 041 $w6 = MOVZWi 6, 042 $w7 = MOVZWi 7, 043 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w744 45...46---47# CHECK-LABEL: name: f248# CHECK-LABEL: bb.0:49# CHECK-NEXT: liveins: $lr50# CHECK-NEXT: {{ $}}51# CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 052# CHECK-NEXT: BL @OUTLINED_FUNCTION_153# CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 054# CHECK-NEXT: $w5 = MOVZWi 12, 055# CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_056name: f257tracksRegLiveness: true58frameInfo:59 isCalleeSavedInfoValid: true60machineFunctionInfo:61 hasRedZone: false62body: |63 bb.0:64 $w0 = MOVZWi 1, 065 $w1 = MOVZWi 2, 066 $w2 = MOVZWi 3, 067 $w3 = MOVZWi 4, 068 $w4 = MOVZWi 5, 069 $w5 = MOVZWi 12, 070 $w6 = MOVZWi 6, 071 $w7 = MOVZWi 7, 072 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w773 74...75---76# CHECK-LABEL: name: f377# CHECK-LABEL: bb.0:78# CHECK-NEXT: liveins: $lr79# CHECK-NEXT: {{ $}}80# CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 081# CHECK-NEXT: BL @OUTLINED_FUNCTION_182# CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 083# CHECK-NEXT: $w5 = MOVZWi 13, 084# CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_085name: f386tracksRegLiveness: true87frameInfo:88 isCalleeSavedInfoValid: true89machineFunctionInfo:90 hasRedZone: false91body: |92 bb.0:93 $w0 = MOVZWi 1, 094 $w1 = MOVZWi 2, 095 $w2 = MOVZWi 3, 096 $w3 = MOVZWi 4, 097 $w4 = MOVZWi 5, 098 $w5 = MOVZWi 13, 099 $w6 = MOVZWi 6, 0100 $w7 = MOVZWi 7, 0101 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7102 103...104---105# CHECK-LABEL: name: f4106# CHECK-LABEL: bb.0:107# CHECK-NEXT: liveins: $lr108# CHECK-NEXT: {{ $}}109# CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0110# CHECK-NEXT: BL @OUTLINED_FUNCTION_1111# CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0112# CHECK-NEXT: $w5 = MOVZWi 14, 0113# CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_0114name: f4115tracksRegLiveness: true116frameInfo:117 isCalleeSavedInfoValid: true118machineFunctionInfo:119 hasRedZone: false120body: |121 bb.0:122 $w0 = MOVZWi 1, 0123 $w1 = MOVZWi 2, 0124 $w2 = MOVZWi 3, 0125 $w3 = MOVZWi 4, 0126 $w4 = MOVZWi 5, 0127 $w5 = MOVZWi 14, 0128 $w6 = MOVZWi 6, 0129 $w7 = MOVZWi 7, 0130 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7131 132...133---134# CHECK-LABEL: name: f5135# CHECK-LABEL: bb.0:136# CHECK-NEXT: liveins: $lr137# CHECK-NEXT: {{ $}}138# CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0139# CHECK-NEXT: BL @OUTLINED_FUNCTION_1140# CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0141# CHECK-NOT: @OUTLINED_FUNCTION_0142name: f5143tracksRegLiveness: true144frameInfo:145 isCalleeSavedInfoValid: true146machineFunctionInfo:147 hasRedZone: false148body: |149 bb.0:150 $w0 = MOVZWi 1, 0151 $w1 = MOVZWi 2, 0152 $w2 = MOVZWi 3, 0153 $w3 = MOVZWi 4, 0154 $w4 = MOVZWi 5, 0155 $w5 = MOVZWi 15, 0156 $w6 = MOVZWi 8, 0157 $w7 = MOVZWi 9, 0158 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7159 160...161---162# CHECK-LABEL: name: f6163# CHECK-LABEL: bb.0:164# CHECK-NEXT: liveins: $lr165# CHECK-NEXT: {{ $}}166# CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0167# CHECK-NEXT: BL @OUTLINED_FUNCTION_1168# CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0169# CHECK-NOT: @OUTLINED_FUNCTION_0170name: f6171tracksRegLiveness: true172frameInfo:173 isCalleeSavedInfoValid: true174machineFunctionInfo:175 hasRedZone: false176body: |177 bb.0:178 $w0 = MOVZWi 1, 0179 $w1 = MOVZWi 2, 0180 $w2 = MOVZWi 3, 0181 $w3 = MOVZWi 4, 0182 $w4 = MOVZWi 5, 0183 $w5 = MOVZWi 16, 0184 $w6 = MOVZWi 9, 0185 $w7 = MOVZWi 8, 0186 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7187 188...189 190# CHECK-LABEL: name: OUTLINED_FUNCTION_0191# CHECK-LABEL: bb.0:192# CHECK-NEXT: liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $lr, $d8, $d9, $d10, $d11, $d12, $d13, $d14, $d15, $w0, $w1, $w2, $w3, $w4, $w5193# CHECK-NEXT: {{ $}}194# CHECK-NEXT: $w6 = MOVZWi 6, 0195# CHECK-NEXT: $w7 = MOVZWi 7, 0196 197# CHECK-LABEL: name: OUTLINED_FUNCTION_1198# CHECK-LABEL: bb.0:199# CHECK-NEXT: liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $lr, $d8, $d9, $d10, $d11, $d12, $d13, $d14, $d15200# CHECK-NEXT: {{ $}}201# CHECK-NEXT: $w0 = MOVZWi 1, 0202# CHECK-NEXT: $w1 = MOVZWi 2, 0203# CHECK-NEXT: $w2 = MOVZWi 3, 0204# CHECK-NEXT: $w3 = MOVZWi 4, 0205# CHECK-NEXT: $w4 = MOVZWi 5, 0206# CHECK-NEXT: RET $lr207