[llvm] r354541 - Add skipFunction to PostRA machine sinking pass.
Xin Tong via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 20 18:11:06 PST 2019
Author: trentxintong
Date: Wed Feb 20 18:11:06 2019
New Revision: 354541
URL: http://llvm.org/viewvc/llvm-project?rev=354541&view=rev
Log:
Add skipFunction to PostRA machine sinking pass.
Summary: Add skipFunction to PostRA machine sinking pass.
Reviewers: junbuml
Subscribers: arsenm, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D57847
Added:
llvm/trunk/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir
Modified:
llvm/trunk/lib/CodeGen/MachineSink.cpp
Modified: llvm/trunk/lib/CodeGen/MachineSink.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineSink.cpp?rev=354541&r1=354540&r2=354541&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineSink.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineSink.cpp Wed Feb 20 18:11:06 2019
@@ -1202,6 +1202,9 @@ bool PostRAMachineSinking::tryToSinkCopy
}
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();
Added: llvm/trunk/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir?rev=354541&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir (added)
+++ llvm/trunk/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir Wed Feb 20 18:11:06 2019
@@ -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
+...
More information about the llvm-commits
mailing list