OSDN Git Service

Adjust to changes in instruction interfaces.
authorChris Lattner <sabre@nondot.org>
Sat, 29 Jan 2005 00:39:08 +0000 (00:39 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 29 Jan 2005 00:39:08 +0000 (00:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19900 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/DeadStoreElimination.cpp
lib/Transforms/Scalar/InstructionCombining.cpp
lib/Transforms/Utils/LoopSimplify.cpp

index 5afcd70..a823e14 100644 (file)
@@ -156,13 +156,12 @@ void DSE::DeleteDeadInstructionChains(Instruction *I,
   // See if this made any operands dead.  We do it this way in case the
   // instruction uses the same operand twice.  We don't want to delete a
   // value then reference it.
-  while (unsigned NumOps = I->getNumOperands()) {
-    Instruction *Op = dyn_cast<Instruction>(I->getOperand(NumOps-1));
-    I->op_erase(I->op_end()-1);         // Drop from the operand list.
-    
-    if (Op) DeadInsts.insert(Op);       // Attempt to nuke it later.
+  for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i) {
+    if (Instruction *Op = dyn_cast<Instruction>(I->getOperand(i)))
+      DeadInsts.insert(Op);      // Attempt to nuke it later.
+    I->setOperand(i, 0);         // Drop from the operand list.
   }
   
-  I->getParent()->getInstList().erase(I);
+  I->eraseFromParent();
   ++NumOther;
 }
index f56fe81..a65b834 100644 (file)
@@ -575,7 +575,7 @@ Instruction *InstCombiner::FoldOpIntoPhi(Instruction &I) {
   // Okay, we can do the transformation: create the new PHI node.
   PHINode *NewPN = new PHINode(I.getType(), I.getName());
   I.setName("");
-  NewPN->op_reserve(PN->getNumOperands());
+  NewPN->reserveOperandSpace(PN->getNumOperands()/2);
   InsertNewInstBefore(NewPN, *PN);
 
   // Next, add all of the operands to the PHI.
@@ -4142,7 +4142,7 @@ Instruction *InstCombiner::FoldPHIArgOpIntoPHI(PHINode &PN) {
   // correct type, and PHI together all of the LHS's of the instructions.
   PHINode *NewPN = new PHINode(FirstInst->getOperand(0)->getType(),
                                PN.getName()+".in");
-  NewPN->op_reserve(PN.getNumOperands());
+  NewPN->reserveOperandSpace(PN.getNumOperands()/2);
 
   Value *InVal = FirstInst->getOperand(0);
   NewPN->addIncoming(InVal, PN.getIncomingBlock(0));
index c7b92bb..b5517cb 100644 (file)
@@ -575,7 +575,7 @@ void LoopSimplify::InsertUniqueBackedgeBlock(Loop *L) {
     PHINode *PN = cast<PHINode>(I);
     PHINode *NewPN = new PHINode(PN->getType(), PN->getName()+".be",
                                  BETerminator);
-    NewPN->op_reserve(2*BackedgeBlocks.size());
+    NewPN->reserveOperandSpace(BackedgeBlocks.size());
 
     // Loop over the PHI node, moving all entries except the one for the
     // preheader over to the new PHI node.
@@ -604,7 +604,9 @@ void LoopSimplify::InsertUniqueBackedgeBlock(Loop *L) {
       PN->setIncomingValue(0, PN->getIncomingValue(PreheaderIdx));
       PN->setIncomingBlock(0, PN->getIncomingBlock(PreheaderIdx));
     }
-    PN->op_erase(PN->op_begin()+2, PN->op_end());
+    // Nuke all entries except the zero'th.
+    for (unsigned i = 0, e = PN->getNumIncomingValues()-1; i != e; ++i)
+      PN->removeIncomingValue(e-i, false);
 
     // Finally, add the newly constructed PHI node as the entry for the BEBlock.
     PN->addIncoming(NewPN, BEBlock);