84 lines · plain
1# RUN: llc -enable-machine-outliner -start-before=aarch64-expand-pseudo -mtriple=arm64-apple-ios -o - %s | FileCheck %s2#3# The calls to _cb1 & _cb2 should be followed by the marker instruction4# 'mov x29, x29' and the attached call. Neither should get outlined.5#6# CHECK-LABEL: _fn1:7# CHECK: bb.0:8# CHECK: bl _cb19# CHECK-NEXT: mov x29, x2910# CHECK-NEXT: bl _attachedcall11# CHECK: b _OUTLINED_FUNCTION_012#13# CHECK-LABEL: _fn2:14# CHECK: bb.0:15# CHECK: bl _cb216# CHECK-NEXT: mov x29, x2917# CHECK-NEXT: bl _attachedcall18# CHECK: b _OUTLINED_FUNCTION_019#20# CHECK-LABEL: _OUTLINED_FUNCTION_0:21# CHECK: bb.0:22# CHECK-NEXT: orr w12, wzr, #0x323# CHECK-NEXT: orr w12, wzr, #0x324# CHECK-NEXT: orr w12, wzr, #0x325# CHECK-NEXT: orr w12, wzr, #0x326# CHECK-NEXT: ret27 28--- |29 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"30 target triple = "arm64-apple-ios"31 32 define void @fn1() {33 ret void34 }35 36 define void @fn2() {37 ret void38 }39 40 declare void @cb1()41 42 declare void @cb2()43 44 declare ptr @attachedcall()45...46---47name: fn148tracksRegLiveness: true49machineFunctionInfo:50 hasRedZone: false51body: |52 bb.0:53 liveins: $lr54 55 BLR_RVMARKER @attachedcall, 1, @cb1, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $x056 $w12 = ORRWri $wzr, 157 $w12 = ORRWri $wzr, 158 $w12 = ORRWri $wzr, 159 $w12 = ORRWri $wzr, 160 $w12 = ORRWri $wzr, 161 $lr = ORRXri $xzr, 162 63 RET undef $lr64...65---66name: fn267tracksRegLiveness: true68machineFunctionInfo:69 hasRedZone: false70body: |71 bb.0:72 liveins: $lr, $x19, $x20, $lr73 74 BLR_RVMARKER @attachedcall, 1, @cb2, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $x075 $w12 = ORRWri $wzr, 176 $w12 = ORRWri $wzr, 177 $w12 = ORRWri $wzr, 178 $w12 = ORRWri $wzr, 179 $w12 = ORRWri $wzr, 180 $lr = ORRXri $xzr, 181 82 RET undef $lr83...84