TargetInstrInfo::commuteInstruction() doesn't actually return a new instruction
authorCameron Zwarich <zwarich@apple.com>
Sat, 23 Feb 2013 23:13:28 +0000 (23:13 +0000)
committerCameron Zwarich <zwarich@apple.com>
Sat, 23 Feb 2013 23:13:28 +0000 (23:13 +0000)
unless it was requested to with an optional parameter that defaults to false, so
we don't need to handle that case in TwoAddressInstructionPass.

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

lib/CodeGen/TwoAddressInstructionPass.cpp

index aca85b2aa17daefc081eb31fa2fdd15d4cb5067e..2ed6be4f0090e381f1088be85de966634313909c 100644 (file)
@@ -581,19 +581,9 @@ commuteInstruction(MachineBasicBlock::iterator &mi,
   }
 
   DEBUG(dbgs() << "2addr: COMMUTED TO: " << *NewMI);
-  // If the instruction changed to commute it, update livevar.
-  if (NewMI != MI) {
-    if (LV)
-      // Update live variables
-      LV->replaceKillInstruction(RegC, MI, NewMI);
-    if (LIS)
-      LIS->ReplaceMachineInstrInMaps(MI, NewMI);
-
-    MBB->insert(mi, NewMI);           // Insert the new inst
-    MBB->erase(mi);                   // Nuke the old inst.
-    mi = NewMI;
-    DistanceMap.insert(std::make_pair(NewMI, Dist));
-  }
+  assert(NewMI == MI &&
+         "TargetInstrInfo::commuteInstruction() should not return a new "
+         "instruction unless it was requested.");
 
   // Update source register map.
   unsigned FromRegC = getMappedReg(RegC, SrcRegMap);