[llvm-commits] CVS: llvm/lib/Transforms/Scalar/LICM.cpp

Chris Lattner lattner at cs.uiuc.edu
Sat Jun 19 15:31:01 PDT 2004


Changes in directory llvm/lib/Transforms/Scalar:

LICM.cpp updated: 1.62 -> 1.63

---
Log message:

Now that dominator tree children are built in determinstic order, this horrible code
can go away


---
Diffs of the changes:  (+2 -16)

Index: llvm/lib/Transforms/Scalar/LICM.cpp
diff -u llvm/lib/Transforms/Scalar/LICM.cpp:1.62 llvm/lib/Transforms/Scalar/LICM.cpp:1.63
--- llvm/lib/Transforms/Scalar/LICM.cpp:1.62	Sat Jun 19 03:56:43 2004
+++ llvm/lib/Transforms/Scalar/LICM.cpp	Sat Jun 19 15:23:35 2004
@@ -40,7 +40,6 @@
 #include "llvm/Analysis/AliasSetTracker.h"
 #include "llvm/Analysis/Dominators.h"
 #include "llvm/Support/CFG.h"
-#include "llvm/Support/StableBasicBlockNumbering.h"
 #include "llvm/Transforms/Utils/PromoteMemToReg.h"
 #include "llvm/Transforms/Utils/Local.h"
 #include "Support/CommandLine.h"
@@ -82,7 +81,6 @@
     LoopInfo      *LI;       // Current LoopInfo
     DominatorTree *DT;       // Dominator Tree for the current Loop...
     DominanceFrontier *DF;   // Current Dominance Frontier
-    StableBasicBlockNumbering *BBNum;  // Stable IDs for basic blocks
 
     // State that is updated as we process loops
     bool Changed;            // Set to true when we change anything.
@@ -205,7 +203,7 @@
 /// runOnFunction - For LICM, this simply traverses the loop structure of the
 /// function, hoisting expressions out of loops if possible.
 ///
-bool LICM::runOnFunction(Function &F) {
+bool LICM::runOnFunction(Function &) {
   Changed = false;
 
   // Get our Loop and Alias Analysis information...
@@ -214,10 +212,6 @@
   DF = &getAnalysis<DominanceFrontier>();
   DT = &getAnalysis<DominatorTree>();
 
-  // Get a stable numbering of basic blocks.
-  StableBasicBlockNumbering CurBBNum(&F);
-  BBNum = &CurBBNum;
-
   // Hoist expressions out of all of the top-level loops.
   for (LoopInfo::iterator I = LI->begin(), E = LI->end(); I != E; ++I) {
     AliasSetTracker AST(*AA);
@@ -343,16 +337,8 @@
       }
 
   const std::vector<DominatorTree::Node*> &Children = N->getChildren();
-  std::vector<std::pair<unsigned, DominatorTree::Node*> > ChildrenWithIDs;
-  ChildrenWithIDs.reserve(Children.size());
-  for (unsigned i = 0, e = Children.size(); i != e; ++i) {
-    unsigned ID = BBNum->getNumber(Children[i]->getBlock());
-    ChildrenWithIDs.push_back(std::make_pair(ID, Children[i]));
-  }
-
-  std::sort(ChildrenWithIDs.begin(), ChildrenWithIDs.end());
   for (unsigned i = 0, e = Children.size(); i != e; ++i)
-    HoistRegion(ChildrenWithIDs[i].second);
+    HoistRegion(Children[i]);
 }
 
 /// canSinkOrHoistInst - Return true if the hoister and sinker can handle this





More information about the llvm-commits mailing list