[llvm-commits] [llvm] r52988 - /llvm/trunk/lib/CodeGen/MachineInstr.cpp
Evan Cheng
evan.cheng at apple.com
Tue Jul 1 15:33:42 PDT 2008
Not noticeable.
Evan
On Jul 1, 2008, at 3:31 PM, Owen Anderson wrote:
> Is there any speedup associated with this?
>
> --Owen
>
> On Jul 1, 2008, at 3:21 PM, Evan Cheng wrote:
>
>> Author: evancheng
>> Date: Tue Jul 1 17:21:21 2008
>> New Revision: 52988
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=52988&view=rev
>> Log:
>> Simplify addRegisterKilled and addRegisterDead.
>>
>> Modified:
>> llvm/trunk/lib/CodeGen/MachineInstr.cpp
>>
>> Modified: llvm/trunk/lib/CodeGen/MachineInstr.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineInstr.cpp?rev=52988&r1=52987&r2=52988&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- llvm/trunk/lib/CodeGen/MachineInstr.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/MachineInstr.cpp Tue Jul 1 17:21:21 2008
>> @@ -738,7 +738,7 @@
>> const TargetRegisterInfo
>> *RegInfo,
>> bool AddIfNotFound) {
>> bool isPhysReg =
>> TargetRegisterInfo::isPhysicalRegister(IncomingReg);
>> - bool Found = false;
>> + bool hasAliases = isPhysReg && RegInfo->getAliasSet(IncomingReg);
>> SmallVector<unsigned,4> DeadOps;
>> for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
>> MachineOperand &MO = getOperand(i);
>> @@ -749,15 +749,15 @@
>> 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 @@
>>
>> // 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 AddIfNotFound) {
>> bool isPhysReg =
>> TargetRegisterInfo::isPhysicalRegister(IncomingReg);
>> bool hasAliases = isPhysReg && RegInfo->getAliasSet(IncomingReg);
>> - bool Found = false;
>> SmallVector<unsigned,4> DeadOps;
>> for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
>> MachineOperand &MO = getOperand(i);
>> @@ -798,13 +797,14 @@
>> 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 @@
>>
>> // 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
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list