summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/CodeGen/MachineSink.cpp3
-rw-r--r--llvm/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir40
2 files changed, 43 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineSink.cpp b/llvm/lib/CodeGen/MachineSink.cpp
index 4e88fc0f799..f4fcbeb387f 100644
--- a/llvm/lib/CodeGen/MachineSink.cpp
+++ b/llvm/lib/CodeGen/MachineSink.cpp
@@ -1202,6 +1202,9 @@ bool PostRAMachineSinking::tryToSinkCopy(MachineBasicBlock &CurBB,
}
bool PostRAMachineSinking::runOnMachineFunction(MachineFunction &MF) {
+ if (skipFunction(MF.getFunction()))
+ return false;
+
bool Changed = false;
const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo();
const TargetInstrInfo *TII = MF.getSubtarget().getInstrInfo();
diff --git a/llvm/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir b/llvm/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir
new file mode 100644
index 00000000000..4128e7c80ff
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir
@@ -0,0 +1,40 @@
+# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass=postra-machine-sink -verify-machineinstrs -o - %s | FileCheck -check-prefix=RUN-POSTRA %s
+# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass=postra-machine-sink -opt-bisect-limit=0 -verify-machineinstrs -o - %s | FileCheck -check-prefix=BISECT-NO-RUN-POSTRA %s
+
+---
+
+# Make sure the pass is run.
+# Sink w19 to %bb.1.
+# RUN-POSTRA-LABEL: name: sinkcopy1
+# RUN-POSTRA: bb.0:
+# RUN-POSTRA-NOT: $w19 = COPY killed $w0
+# RUN-POSTRA: bb.1:
+# RUN-POSTRA: liveins: $w1, $w0
+# RUN-POSTRA: renamable $w19 = COPY killed $w0
+
+# Make sure the pass it not run.
+# BISECT-NO-RUN-POSTRA-LABEL: name: sinkcopy1
+# BISECT-NO-RUN-POSTRA: bb.0:
+# BISECT-NO-RUN-POSTRA: $w19 = COPY killed $w0
+# BISECT-NO-RUN-POSTRA: bb.1:
+# BISECT-NO-RUN-POSTRA: liveins: $w1, $w19
+
+name: sinkcopy1
+tracksRegLiveness: true
+body: |
+ bb.0:
+ liveins: $w0, $w1
+ $w1 = SUBSWri $w1, 1, 0, implicit-def $nzcv
+ renamable $w19 = COPY killed $w0
+ Bcc 11, %bb.1, implicit $nzcv
+ B %bb.2
+
+ bb.1:
+ liveins: $w1, $w19
+ $w0 = ADDWrr $w1, $w19
+ RET $x0
+
+ bb.2:
+ $w0 = COPY $wzr
+ RET $x0
+...
OpenPOWER on IntegriCloud