[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