diff options
-rw-r--r-- | llvm/lib/CodeGen/MachineSink.cpp | 3 | ||||
-rw-r--r-- | llvm/test/CodeGen/AArch64/bisect-post-ra-machine-sink.mir | 40 |
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 +... |