diff options
Diffstat (limited to 'llvm/test/CodeGen/AArch64/machine-outliner-ordering.mir')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/machine-outliner-ordering.mir | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/machine-outliner-ordering.mir b/llvm/test/CodeGen/AArch64/machine-outliner-ordering.mir new file mode 100644 index 00000000000..7395df641f5 --- /dev/null +++ b/llvm/test/CodeGen/AArch64/machine-outliner-ordering.mir @@ -0,0 +1,106 @@ +# RUN: llc -mtriple=aarch64-unknown-unknown -run-pass=machine-outliner \ +# RUN: -verify-machineinstrs %s -o - | FileCheck %s + +# Ensure that outlined function names appear as expected. Currently, they are +# output in order of benefit. + +--- | + define void @should_have_fn2() #0 { ret void } + define void @should_have_fn0() #0 { ret void } + define void @should_have_fn1() #0 { ret void } + attributes #0 = { noredzone optsize minsize } +... +--- + +name: should_have_fn2 +tracksRegLiveness: true +body: | + bb.0: + ; CHECK-LABEL: name: should_have_fn2 + ; CHECK-NOT: OUTLINED_FUNCTION_1 + ; CHECK-NOT: OUTLINED_FUNCTION_0 + ; CHECK: OUTLINED_FUNCTION_2 + $w0 = ORRWri $wzr, 1 + $w0 = ORRWri $wzr, 1 + $w0 = ORRWri $wzr, 1 + bb.1: + ; CHECK-DAG: OUTLINED_FUNCTION_2 + $w0 = ORRWri $wzr, 1 + $w0 = ORRWri $wzr, 1 + $w0 = ORRWri $wzr, 1 + bb.2: + ; CHECK-DAG: OUTLINED_FUNCTION_2 + $w0 = ORRWri $wzr, 1 + $w0 = ORRWri $wzr, 1 + $w0 = ORRWri $wzr, 1 + bb.3: + ; CHECK-DAG: OUTLINED_FUNCTION_2 + $w0 = ORRWri $wzr, 1 + $w0 = ORRWri $wzr, 1 + $w0 = ORRWri $wzr, 1 + bb.4: + RET undef $lr + +... +--- + +name: should_have_fn0 + +tracksRegLiveness: true +body: | + bb.0: + ; CHECK-LABEL: name: should_have_fn0 + ; CHECK-NOT: OUTLINED_FUNCTION_1 + ; CHECK-NOT: OUTLINED_FUNCTION_2 + ; CHECK: OUTLINED_FUNCTION_0 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + bb.1: + ; CHECK-DAG: OUTLINED_FUNCTION_0 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + bb.3: + ; CHECK-DAG: OUTLINED_FUNCTION_0 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + $w1 = ORRWri $wzr, 1 + bb.4: + RET undef $lr + +... +--- + +name: should_have_fn1 +tracksRegLiveness: true +body: | + bb.0: + ; CHECK-LABEL: name: should_have_fn1 + ; CHECK-NOT: OUTLINED_FUNCTION_0 + ; CHECK-NOT: OUTLINED_FUNCTION_2 + ; CHECK: OUTLINED_FUNCTION_1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + bb.1: + ; CHECK-DAG: OUTLINED_FUNCTION_1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + bb.3: + ; CHECK-DAG: OUTLINED_FUNCTION_1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + $w2 = ORRWri $wzr, 1 + bb.4: + RET undef $lr |

