Avoid calling removeVirtualRegisterKilled which iterates over the operands
authorBob Wilson <bob.wilson@apple.com>
Tue, 1 Sep 2009 23:18:46 +0000 (23:18 +0000)
committerBob Wilson <bob.wilson@apple.com>
Tue, 1 Sep 2009 23:18:46 +0000 (23:18 +0000)
to find the kill, since we already have the operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80736 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/TwoAddressInstructionPass.cpp

index b50d53ce59bc28e0feea533bd85fa2da24be161c..1938b4bd369a83ed81d9c13d63de09762a585484 100644 (file)
@@ -1032,7 +1032,8 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
         if (KillMO) {
           if (!FirstKeptMO) {
             // All uses of regB are being replaced; move the kill to prevMI.
-            if (LV && LV->removeVirtualRegisterKilled(regB, mi))
+            KillMO->setIsKill(false);
+            if (LV && LV->getVarInfo(regB).removeKill(mi))
               LV->addVirtualRegisterKilled(regB, prevMI);
           } else {
             if (!KillMOKept) {