1# RUN: llc -mtriple=aarch64-unknown-unknown -run-pass=machine-outliner \ 2# RUN: -verify-machineinstrs %s -o - | FileCheck %s 3 4# Ensure that outlined function names appear as expected. Currently, they are 5# output in order of benefit. 6 7--- | 8 define void @should_have_fn2() #0 { ret void } 9 define void @should_have_fn0() #0 { ret void } 10 define void @should_have_fn1() #0 { ret void } 11 attributes #0 = { noredzone optsize minsize } 12... 13--- 14 15name: should_have_fn2 16tracksRegLiveness: true 17body: | 18 bb.0: 19 ; CHECK-LABEL: name: should_have_fn2 20 ; CHECK-NOT: OUTLINED_FUNCTION_1 21 ; CHECK-NOT: OUTLINED_FUNCTION_0 22 ; CHECK: OUTLINED_FUNCTION_2 23 $w0 = ORRWri $wzr, 1 24 $w0 = ORRWri $wzr, 1 25 $w0 = ORRWri $wzr, 1 26 bb.1: 27 ; CHECK-DAG: OUTLINED_FUNCTION_2 28 $w0 = ORRWri $wzr, 1 29 $w0 = ORRWri $wzr, 1 30 $w0 = ORRWri $wzr, 1 31 bb.2: 32 ; CHECK-DAG: OUTLINED_FUNCTION_2 33 $w0 = ORRWri $wzr, 1 34 $w0 = ORRWri $wzr, 1 35 $w0 = ORRWri $wzr, 1 36 bb.3: 37 ; CHECK-DAG: OUTLINED_FUNCTION_2 38 $w0 = ORRWri $wzr, 1 39 $w0 = ORRWri $wzr, 1 40 $w0 = ORRWri $wzr, 1 41 bb.4: 42 RET undef $lr 43 44... 45--- 46 47name: should_have_fn0 48 49tracksRegLiveness: true 50body: | 51 bb.0: 52 ; CHECK-LABEL: name: should_have_fn0 53 ; CHECK-NOT: OUTLINED_FUNCTION_1 54 ; CHECK-NOT: OUTLINED_FUNCTION_2 55 ; CHECK: OUTLINED_FUNCTION_0 56 $w1 = ORRWri $wzr, 1 57 $w1 = ORRWri $wzr, 1 58 $w1 = ORRWri $wzr, 1 59 $w1 = ORRWri $wzr, 1 60 $w1 = ORRWri $wzr, 1 61 bb.1: 62 ; CHECK-DAG: OUTLINED_FUNCTION_0 63 $w1 = ORRWri $wzr, 1 64 $w1 = ORRWri $wzr, 1 65 $w1 = ORRWri $wzr, 1 66 $w1 = ORRWri $wzr, 1 67 $w1 = ORRWri $wzr, 1 68 bb.3: 69 ; CHECK-DAG: OUTLINED_FUNCTION_0 70 $w1 = ORRWri $wzr, 1 71 $w1 = ORRWri $wzr, 1 72 $w1 = ORRWri $wzr, 1 73 $w1 = ORRWri $wzr, 1 74 $w1 = ORRWri $wzr, 1 75 bb.4: 76 RET undef $lr 77 78... 79--- 80 81name: should_have_fn1 82tracksRegLiveness: true 83body: | 84 bb.0: 85 ; CHECK-LABEL: name: should_have_fn1 86 ; CHECK-NOT: OUTLINED_FUNCTION_0 87 ; CHECK-NOT: OUTLINED_FUNCTION_2 88 ; CHECK: OUTLINED_FUNCTION_1 89 $w2 = ORRWri $wzr, 1 90 $w2 = ORRWri $wzr, 1 91 $w2 = ORRWri $wzr, 1 92 $w2 = ORRWri $wzr, 1 93 bb.1: 94 ; CHECK-DAG: OUTLINED_FUNCTION_1 95 $w2 = ORRWri $wzr, 1 96 $w2 = ORRWri $wzr, 1 97 $w2 = ORRWri $wzr, 1 98 $w2 = ORRWri $wzr, 1 99 bb.3: 100 ; CHECK-DAG: OUTLINED_FUNCTION_1 101 $w2 = ORRWri $wzr, 1 102 $w2 = ORRWri $wzr, 1 103 $w2 = ORRWri $wzr, 1 104 $w2 = ORRWri $wzr, 1 105 bb.4: 106 RET undef $lr 107