[llvm] a3f6233 - [AArch64] Add test case where machine outliner breaks up a bundle.
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 12 08:16:20 PST 2021
Author: Florian Hahn
Date: 2021-02-12T16:16:03Z
New Revision: a3f6233fa4b403e3f51c97c0bc0ecbcb93901aad
URL: https://github.com/llvm/llvm-project/commit/a3f6233fa4b403e3f51c97c0bc0ecbcb93901aad
DIFF: https://github.com/llvm/llvm-project/commit/a3f6233fa4b403e3f51c97c0bc0ecbcb93901aad.diff
LOG: [AArch64] Add test case where machine outliner breaks up a bundle.
This is a backend test for PR49082.
Added:
llvm/test/CodeGen/AArch64/rvmarker-pseudo-expansion-and-outlining.mir
Modified:
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/AArch64/rvmarker-pseudo-expansion-and-outlining.mir b/llvm/test/CodeGen/AArch64/rvmarker-pseudo-expansion-and-outlining.mir
new file mode 100644
index 000000000000..4c274721ae41
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/rvmarker-pseudo-expansion-and-outlining.mir
@@ -0,0 +1,75 @@
+# RUN: llc -enable-machine-outliner -start-before=aarch64-expand-pseudo -mtriple=arm64-apple-ios -o - %s | FileCheck %s
+#
+# FIXME: The calls to _cb1 & _cb2 should be followed by the marker instruction
+# 'mov x29, x29'. The marker should not get outlined.
+#
+# CHECK-LABEL: _fn1:
+# CHECK: bb.0:
+# CHECK: bl _cb1
+# CHECK-NEXT: bl _OUTLINED_FUNCTION_0
+#
+# CHECK-LABEL: _fn2:
+# CHECK: bb.0:
+# CHECK: bl _cb2
+# CHECK-NEXT: bl _OUTLINED_FUNCTION_0
+#
+# CHECK-LABEL: _OUTLINED_FUNCTION_0:
+# CHECK: bb.0:
+# CHECK-NEXT: mov x29, x29
+# CHECK-NEXT: orr w12, wzr, #0x3
+# CHECK-NEXT: orr w12, wzr, #0x3
+# CHECK-NEXT: orr w12, wzr, #0x3
+# CHECK-NEXT: ret
+
+--- |
+ target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
+ target triple = "arm64-apple-ios"
+
+ define void @fn1() {
+ ret void
+ }
+
+ define void @fn2() {
+ ret void
+ }
+
+ declare void @cb1()
+
+ declare void @cb2()
+...
+---
+name: fn1
+tracksRegLiveness: true
+machineFunctionInfo:
+ hasRedZone: false
+body: |
+ bb.0:
+ liveins: $lr
+
+ BLR_RVMARKER @cb1, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $x0
+ $w12 = ORRWri $wzr, 1
+ $w12 = ORRWri $wzr, 1
+ $w12 = ORRWri $wzr, 1
+ $w12 = ORRWri $wzr, 1
+ $lr = ORRXri $xzr, 1
+
+ RET undef $lr
+...
+---
+name: fn2
+tracksRegLiveness: true
+machineFunctionInfo:
+ hasRedZone: false
+body: |
+ bb.0:
+ liveins: $lr, $x19, $x20, $lr
+
+ BLR_RVMARKER @cb2, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $x0
+ $w12 = ORRWri $wzr, 1
+ $w12 = ORRWri $wzr, 1
+ $w12 = ORRWri $wzr, 1
+ $w12 = ORRWri $wzr, 1
+ $lr = ORRXri $xzr, 1
+
+ RET undef $lr
+...
More information about the llvm-commits
mailing list