From 1096734011a1ed403cc3a35e5f05f0f56873725d Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Tue, 1 Jul 2008 22:21:21 +0000 Subject: [PATCH] Simplify addRegisterKilled and addRegisterDead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52988 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/MachineInstr.cpp | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp index 75b2c9865ec..8e9933c7a73 100644 --- a/lib/CodeGen/MachineInstr.cpp +++ b/lib/CodeGen/MachineInstr.cpp @@ -738,7 +738,7 @@ bool MachineInstr::addRegisterKilled(unsigned IncomingReg, const TargetRegisterInfo *RegInfo, bool AddIfNotFound) { bool isPhysReg = TargetRegisterInfo::isPhysicalRegister(IncomingReg); - bool Found = false; + bool hasAliases = isPhysReg && RegInfo->getAliasSet(IncomingReg); SmallVector DeadOps; for (unsigned i = 0, e = getNumOperands(); i != e; ++i) { MachineOperand &MO = getOperand(i); @@ -749,15 +749,15 @@ bool MachineInstr::addRegisterKilled(unsigned IncomingReg, continue; if (Reg == IncomingReg) { - if (!Found) // One kill of reg per instruction. - MO.setIsKill(); - Found = true; - } else if (isPhysReg && MO.isKill() && - TargetRegisterInfo::isPhysicalRegister(Reg)) { + MO.setIsKill(); + return true; + } + if (hasAliases && MO.isKill() && + TargetRegisterInfo::isPhysicalRegister(Reg)) { // A super-register kill already exists. if (RegInfo->isSuperRegister(IncomingReg, Reg)) - Found = true; - else if (RegInfo->isSubRegister(IncomingReg, Reg)) + return true; + if (RegInfo->isSubRegister(IncomingReg, Reg)) DeadOps.push_back(i); } } @@ -774,14 +774,14 @@ bool MachineInstr::addRegisterKilled(unsigned IncomingReg, // If not found, this means an alias of one of the operands is killed. Add a // new implicit operand if required. - if (!Found && AddIfNotFound) { + if (AddIfNotFound) { addOperand(MachineOperand::CreateReg(IncomingReg, false /*IsDef*/, true /*IsImp*/, true /*IsKill*/)); return true; } - return Found; + return false; } bool MachineInstr::addRegisterDead(unsigned IncomingReg, @@ -789,7 +789,6 @@ bool MachineInstr::addRegisterDead(unsigned IncomingReg, bool AddIfNotFound) { bool isPhysReg = TargetRegisterInfo::isPhysicalRegister(IncomingReg); bool hasAliases = isPhysReg && RegInfo->getAliasSet(IncomingReg); - bool Found = false; SmallVector DeadOps; for (unsigned i = 0, e = getNumOperands(); i != e; ++i) { MachineOperand &MO = getOperand(i); @@ -798,13 +797,14 @@ bool MachineInstr::addRegisterDead(unsigned IncomingReg, unsigned Reg = MO.getReg(); if (Reg == IncomingReg) { MO.setIsDead(); - Found = true; - } else if (hasAliases && MO.isDead() && - TargetRegisterInfo::isPhysicalRegister(Reg)) { + return true; + } + if (hasAliases && MO.isDead() && + TargetRegisterInfo::isPhysicalRegister(Reg)) { // There exists a super-register that's marked dead. if (RegInfo->isSuperRegister(IncomingReg, Reg)) - Found = true; - else if (RegInfo->isSubRegister(IncomingReg, Reg)) + return true; + if (RegInfo->isSubRegister(IncomingReg, Reg)) DeadOps.push_back(i); } } @@ -821,13 +821,13 @@ bool MachineInstr::addRegisterDead(unsigned IncomingReg, // If not found, this means an alias of one of the operand is dead. Add a // new implicit operand. - if (!Found && AddIfNotFound) { + if (AddIfNotFound) { addOperand(MachineOperand::CreateReg(IncomingReg, true/*IsDef*/, true/*IsImp*/,false/*IsKill*/, true/*IsDead*/)); return true; } - return Found; + return false; } /// copyKillDeadInfo - copies killed/dead information from one instr to another