diff options
author | Vitaly Buka <vitalybuka@google.com> | 2024-08-28 13:40:34 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-28 13:40:34 -0700 |
commit | 0281339159e6ef0c30acbf146e9c3b06482191c1 (patch) | |
tree | 47ba42f46b2ee1a622101fc57e797aa86c52921e /llvm/lib/CodeGen/MachineInstr.cpp | |
parent | 38b252aa45abad53d7c07c666569b174a215d94d (diff) | |
download | llvm-0281339159e6ef0c30acbf146e9c3b06482191c1.zip llvm-0281339159e6ef0c30acbf146e9c3b06482191c1.tar.gz llvm-0281339159e6ef0c30acbf146e9c3b06482191c1.tar.bz2 |
Revert "[CodeGen] Use MachineInstr::{all_uses,all_defs} (NFC)" (#106451)
Reverts llvm/llvm-project#106404
Breaks:
https://lab.llvm.org/buildbot/#/builders/169/builds/2590
https://lab.llvm.org/buildbot/#/builders/164/builds/2454
Diffstat (limited to 'llvm/lib/CodeGen/MachineInstr.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineInstr.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/MachineInstr.cpp b/llvm/lib/CodeGen/MachineInstr.cpp index 7f81aeb..f21910e 100644 --- a/llvm/lib/CodeGen/MachineInstr.cpp +++ b/llvm/lib/CodeGen/MachineInstr.cpp @@ -1041,9 +1041,10 @@ unsigned MachineInstr::getBundleSize() const { /// Returns true if the MachineInstr has an implicit-use operand of exactly /// the given register (not considering sub/super-registers). bool MachineInstr::hasRegisterImplicitUseOperand(Register Reg) const { - for (const MachineOperand &MO : all_uses()) - if (MO.isImplicit() && MO.getReg() == Reg) + for (const MachineOperand &MO : operands()) { + if (MO.isReg() && MO.isUse() && MO.isImplicit() && MO.getReg() == Reg) return true; + } return false; } @@ -1263,8 +1264,10 @@ unsigned MachineInstr::findTiedOperandIdx(unsigned OpIdx) const { /// clearKillInfo - Clears kill flags on all operands. /// void MachineInstr::clearKillInfo() { - for (MachineOperand &MO : all_uses()) - MO.setIsKill(false); + for (MachineOperand &MO : operands()) { + if (MO.isReg() && MO.isUse()) + MO.setIsKill(false); + } } void MachineInstr::substituteRegister(Register FromReg, Register ToReg, @@ -1546,9 +1549,12 @@ bool MachineInstr::isLoadFoldBarrier() const { /// allDefsAreDead - Return true if all the defs of this instruction are dead. /// bool MachineInstr::allDefsAreDead() const { - for (const MachineOperand &MO : all_defs()) + for (const MachineOperand &MO : operands()) { + if (!MO.isReg() || MO.isUse()) + continue; if (!MO.isDead()) return false; + } return true; } @@ -2057,8 +2063,8 @@ void MachineInstr::clearRegisterKills(Register Reg, const TargetRegisterInfo *RegInfo) { if (!Reg.isPhysical()) RegInfo = nullptr; - for (MachineOperand &MO : all_uses()) { - if (!MO.isKill()) + for (MachineOperand &MO : operands()) { + if (!MO.isReg() || !MO.isUse() || !MO.isKill()) continue; Register OpReg = MO.getReg(); if ((RegInfo && RegInfo->regsOverlap(Reg, OpReg)) || Reg == OpReg) |