[llvm-commits] [llvm] r83817 - /llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp

Chris Lattner sabre at nondot.org
Sun Oct 11 16:56:09 PDT 2009


Author: lattner
Date: Sun Oct 11 18:56:08 2009
New Revision: 83817

URL: http://llvm.org/viewvc/llvm-project?rev=83817&view=rev
Log:
revert r83814 for now, it is making the llvm-gcc bootstrap unhappy.

Modified:
    llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=83817&r1=83816&r2=83817&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Sun Oct 11 18:56:08 2009
@@ -101,20 +101,6 @@
         Add(I);
     }
     
-    /// AddInitialGroup - Add the specified batch of stuff in reverse order.
-    /// which should only be done when the worklist is empty and when the group
-    /// has no duplicates.
-    void AddInitialGroup(Instruction *const *List, unsigned NumEntries) {
-      assert(Worklist.empty() && "Worklist must be empty to add initial group");
-      Worklist.reserve(NumEntries+16);
-      DEBUG(errs() << "IC: ADDING: " << NumEntries << " instrs to worklist\n");
-      for (; NumEntries; --NumEntries) {
-        Instruction *I = List[NumEntries-1];
-        WorklistMap.insert(std::make_pair(I, Worklist.size()));
-        Worklist.push_back(I);
-      }
-    }
-    
     // Remove - remove I from the worklist if it exists.
     void Remove(Instruction *I) {
       DenseMap<Instruction*, unsigned>::iterator It = WorklistMap.find(I);
@@ -12677,9 +12663,6 @@
                                        const TargetData *TD) {
   SmallVector<BasicBlock*, 256> Worklist;
   Worklist.push_back(BB);
-  
-  std::vector<Instruction*> InstrsForInstCombineWorklist;
-  InstrsForInstCombineWorklist.reserve(128);
 
   while (!Worklist.empty()) {
     BB = Worklist.back();
@@ -12726,7 +12709,7 @@
         DBI_Prev = 0;
       }
 
-      InstrsForInstCombineWorklist.push_back(Inst);
+      IC.Worklist.Add(Inst);
     }
 
     // Recursively visit successors.  If this is a branch or switch on a
@@ -12758,14 +12741,6 @@
     for (unsigned i = 0, e = TI->getNumSuccessors(); i != e; ++i)
       Worklist.push_back(TI->getSuccessor(i));
   }
-  
-  // Once we've found all of the instructions to add to instcombine's worklist,
-  // add them in reverse order.  This way instcombine will visit from the top
-  // of the function down.  This jives well with the way that it adds all uses
-  // of instructions to the worklist after doing a transformation, thus avoiding
-  // some N^2 behavior in pathological cases.
-  IC.Worklist.AddInitialGroup(&InstrsForInstCombineWorklist[0],
-                              InstrsForInstCombineWorklist.size());
 }
 
 bool InstCombiner::DoOneIteration(Function &F, unsigned Iteration) {





More information about the llvm-commits mailing list