diff options
author | Craig Topper <craig.topper@sifive.com> | 2023-03-25 17:20:08 -0700 |
---|---|---|
committer | Craig Topper <craig.topper@sifive.com> | 2023-03-25 17:20:52 -0700 |
commit | e35fbf5c04f4719db8ff7c7a993cbf96bb706903 (patch) | |
tree | 1719de48c1847122a6511eceb3951ee9459490fc /llvm/lib/CodeGen/MachineCopyPropagation.cpp | |
parent | bae6f8f95cae65ebe7c6f5008d7054aa86004cbe (diff) | |
download | llvm-e35fbf5c04f4719db8ff7c7a993cbf96bb706903.zip llvm-e35fbf5c04f4719db8ff7c7a993cbf96bb706903.tar.gz llvm-e35fbf5c04f4719db8ff7c7a993cbf96bb706903.tar.bz2 |
[MachineCopyPropagation] Pass DestSourcePair to isBackwardPropagatableCopy. NFC
Instead of calling isCopyInstr again, just pass the DestSourcePair
from the isCopyInstr call from the caller.
Diffstat (limited to 'llvm/lib/CodeGen/MachineCopyPropagation.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineCopyPropagation.cpp | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/llvm/lib/CodeGen/MachineCopyPropagation.cpp b/llvm/lib/CodeGen/MachineCopyPropagation.cpp index bd2d80c..218f293 100644 --- a/llvm/lib/CodeGen/MachineCopyPropagation.cpp +++ b/llvm/lib/CodeGen/MachineCopyPropagation.cpp @@ -899,16 +899,11 @@ void MachineCopyPropagation::ForwardCopyPropagateBlock(MachineBasicBlock &MBB) { Tracker.clear(); } -static bool isBackwardPropagatableCopy(MachineInstr &MI, +static bool isBackwardPropagatableCopy(const DestSourcePair &CopyOperands, const MachineRegisterInfo &MRI, - const TargetInstrInfo &TII, - bool UseCopyInstr) { - std::optional<DestSourcePair> CopyOperands = - isCopyInstr(MI, TII, UseCopyInstr); - assert(CopyOperands && "MI is expected to be a COPY"); - - Register Def = CopyOperands->Destination->getReg(); - Register Src = CopyOperands->Source->getReg(); + const TargetInstrInfo &TII) { + Register Def = CopyOperands.Destination->getReg(); + Register Src = CopyOperands.Source->getReg(); if (!Def || !Src) return false; @@ -916,7 +911,7 @@ static bool isBackwardPropagatableCopy(MachineInstr &MI, if (MRI.isReserved(Def) || MRI.isReserved(Src)) return false; - return CopyOperands->Source->isRenamable() && CopyOperands->Source->isKill(); + return CopyOperands.Source->isRenamable() && CopyOperands.Source->isKill(); } void MachineCopyPropagation::propagateDefs(MachineInstr &MI) { @@ -991,14 +986,13 @@ void MachineCopyPropagation::BackwardCopyPropagateBlock( Register SrcReg = CopyOperands->Source->getReg(); if (!TRI->regsOverlap(DefReg, SrcReg)) { - MCRegister Def = DefReg.asMCReg(); - MCRegister Src = SrcReg.asMCReg(); - // Unlike forward cp, we don't invoke propagateDefs here, // just let forward cp do COPY-to-COPY propagation. - if (isBackwardPropagatableCopy(MI, *MRI, *TII, UseCopyInstr)) { - Tracker.invalidateRegister(Src, *TRI, *TII, UseCopyInstr); - Tracker.invalidateRegister(Def, *TRI, *TII, UseCopyInstr); + if (isBackwardPropagatableCopy(*CopyOperands, *MRI, *TII)) { + Tracker.invalidateRegister(SrcReg.asMCReg(), *TRI, *TII, + UseCopyInstr); + Tracker.invalidateRegister(DefReg.asMCReg(), *TRI, *TII, + UseCopyInstr); Tracker.trackCopy(&MI, *TRI, *TII, UseCopyInstr); continue; } |