forked from OSchip/llvm-project
[NFC] add/modify wrapper function for findRegisterDefOperand().
llvm-svn: 354438
This commit is contained in:
parent
f3d4166132
commit
b934fce613
|
@ -1199,12 +1199,22 @@ public:
|
|||
|
||||
/// Wrapper for findRegisterDefOperandIdx, it returns
|
||||
/// a pointer to the MachineOperand rather than an index.
|
||||
MachineOperand *findRegisterDefOperand(unsigned Reg, bool isDead = false,
|
||||
const TargetRegisterInfo *TRI = nullptr) {
|
||||
int Idx = findRegisterDefOperandIdx(Reg, isDead, false, TRI);
|
||||
MachineOperand *
|
||||
findRegisterDefOperand(unsigned Reg, bool isDead = false,
|
||||
bool Overlap = false,
|
||||
const TargetRegisterInfo *TRI = nullptr) {
|
||||
int Idx = findRegisterDefOperandIdx(Reg, isDead, Overlap, TRI);
|
||||
return (Idx == -1) ? nullptr : &getOperand(Idx);
|
||||
}
|
||||
|
||||
const MachineOperand *
|
||||
findRegisterDefOperand(unsigned Reg, bool isDead = false,
|
||||
bool Overlap = false,
|
||||
const TargetRegisterInfo *TRI = nullptr) const {
|
||||
return const_cast<MachineInstr *>(this)->findRegisterDefOperand(
|
||||
Reg, isDead, Overlap, TRI);
|
||||
}
|
||||
|
||||
/// Find the index of the first operand in the
|
||||
/// operand list that is used to represent the predicate. It returns -1 if
|
||||
/// none is found.
|
||||
|
|
|
@ -400,7 +400,7 @@ bool LiveVariables::HandlePhysRegKill(unsigned Reg, MachineInstr *MI) {
|
|||
true/*IsImp*/, true/*IsKill*/));
|
||||
else {
|
||||
MachineOperand *MO =
|
||||
LastRefOrPartRef->findRegisterDefOperand(Reg, false, TRI);
|
||||
LastRefOrPartRef->findRegisterDefOperand(Reg, false, false, TRI);
|
||||
bool NeedEC = MO->isEarlyClobber() && MO->getReg() != Reg;
|
||||
// If the last reference is the last def, then it's not used at all.
|
||||
// That is, unless we are currently processing the last reference itself.
|
||||
|
|
|
@ -1917,7 +1917,7 @@ void MachineInstr::setRegisterDefReadUndef(unsigned Reg, bool IsUndef) {
|
|||
void MachineInstr::addRegisterDefined(unsigned Reg,
|
||||
const TargetRegisterInfo *RegInfo) {
|
||||
if (TargetRegisterInfo::isPhysicalRegister(Reg)) {
|
||||
MachineOperand *MO = findRegisterDefOperand(Reg, false, RegInfo);
|
||||
MachineOperand *MO = findRegisterDefOperand(Reg, false, false, RegInfo);
|
||||
if (MO)
|
||||
return;
|
||||
} else {
|
||||
|
|
|
@ -1140,7 +1140,8 @@ EmitSpecialNode(SDNode *Node, bool IsClone, bool IsCloned,
|
|||
// then remove the early-clobber flag.
|
||||
for (unsigned Reg : ECRegs) {
|
||||
if (MIB->readsRegister(Reg, TRI)) {
|
||||
MachineOperand *MO = MIB->findRegisterDefOperand(Reg, false, TRI);
|
||||
MachineOperand *MO =
|
||||
MIB->findRegisterDefOperand(Reg, false, false, TRI);
|
||||
assert(MO && "No def operand for clobbered register?");
|
||||
MO->setIsEarlyClobber(false);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue