summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2018-03-27 22:23:48 +0000
committerJessica Paquette <jpaquette@apple.com>2018-03-27 22:23:48 +0000
commit2519ee70810c561ce40e5e4e57a9c083d30faf67 (patch)
tree9b3715aeb7604695322e458d0f5a1251ad511df0 /llvm/test
parente4208bfa5b2d78541eeb08459caa11e850af201a (diff)
downloadbcm5719-llvm-2519ee70810c561ce40e5e4e57a9c083d30faf67.tar.gz
bcm5719-llvm-2519ee70810c561ce40e5e4e57a9c083d30faf67.zip
[MachineOutliner] AArch64: Don't outline ADRPs with un-outlinable operands
If an ADRP appears with, say, a CPI operand, we shouldn't outline it. This moves the check for unsafe operands so that it occurs before the special-case for ADRPs. Also add a test for outlining ADRPs. llvm-svn: 328674
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/AArch64/machine-outliner-bad-adrp.mir41
1 files changed, 41 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/machine-outliner-bad-adrp.mir b/llvm/test/CodeGen/AArch64/machine-outliner-bad-adrp.mir
new file mode 100644
index 00000000000..4f783af0935
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/machine-outliner-bad-adrp.mir
@@ -0,0 +1,41 @@
+
+# RUN: llc -mtriple=aarch64--- -verify-machineinstrs -simplify-mir -run-pass=machine-outliner %s -o - | FileCheck %s
+--- |
+
+ define void @foo() #0 {
+ ret void
+ }
+
+ attributes #0 = { noredzone }
+...
+---
+name: foo
+constants:
+ - id: 0
+ value: 'float 1.990000e+02'
+ alignment: 4
+ isTargetSpecific: false
+body: |
+ bb.0:
+ liveins: $w1, $w10, $x14, $x15, $x16, $x10, $lr
+ ; CHECK-NOT: BL
+
+ $w10 = MOVZWi 4, 0, implicit-def $x10
+
+ renamable $x14 = ADRP target-flags(aarch64-page) %const.0
+ renamable $x15 = ADRP target-flags(aarch64-page) %const.0
+ renamable $x16 = ADRP target-flags(aarch64-page) %const.0
+
+ $w10 = MOVZWi 5, 0, implicit-def $x10
+
+ renamable $x14 = ADRP target-flags(aarch64-page) %const.0
+ renamable $x15 = ADRP target-flags(aarch64-page) %const.0
+ renamable $x16 = ADRP target-flags(aarch64-page) %const.0
+
+ $w10 = MOVZWi 6, 0, implicit-def $x10
+
+ renamable $x14 = ADRP target-flags(aarch64-page) %const.0
+ renamable $x15 = ADRP target-flags(aarch64-page) %const.0
+ renamable $x16 = ADRP target-flags(aarch64-page) %const.0
+
+ RET undef $lr
OpenPOWER on IntegriCloud