From 56b7ee20dad7160a117ea0d102fc5432074ce2d0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 19 Jun 2004 20:23:35 +0000 Subject: [PATCH] Now that dominator tree children are built in determinstic order, this horrible code can go away git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14254 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/LICM.cpp | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/lib/Transforms/Scalar/LICM.cpp b/lib/Transforms/Scalar/LICM.cpp index 31aff0d9ebc..8bdde10b647 100644 --- a/lib/Transforms/Scalar/LICM.cpp +++ b/lib/Transforms/Scalar/LICM.cpp @@ -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 @@ namespace { 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 @@ FunctionPass *llvm::createLICMPass() { return new LICM(); } /// 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 @@ bool LICM::runOnFunction(Function &F) { DF = &getAnalysis(); DT = &getAnalysis(); - // 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 @@ void LICM::HoistRegion(DominatorTree::Node *N) { } const std::vector &Children = N->getChildren(); - std::vector > 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 -- 2.34.1