summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-06-19 20:23:35 +0000
committerChris Lattner <sabre@nondot.org>2004-06-19 20:23:35 +0000
commit42ad6461043b73312a13b74ca126475e3d1e3738 (patch)
tree7ba3ff26524b5264627c33907e9cc8ebc57da77a
parent39396e2df9c32010aabd927a7270c639ca74945a (diff)
downloadbcm5719-llvm-42ad6461043b73312a13b74ca126475e3d1e3738.tar.gz
bcm5719-llvm-42ad6461043b73312a13b74ca126475e3d1e3738.zip
Now that dominator tree children are built in determinstic order, this horrible code
can go away llvm-svn: 14254
-rw-r--r--llvm/lib/Transforms/Scalar/LICM.cpp18
1 files changed, 2 insertions, 16 deletions
diff --git a/llvm/lib/Transforms/Scalar/LICM.cpp b/llvm/lib/Transforms/Scalar/LICM.cpp
index 31aff0d9ebc..8bdde10b647 100644
--- a/llvm/lib/Transforms/Scalar/LICM.cpp
+++ b/llvm/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<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 @@ void LICM::HoistRegion(DominatorTree::Node *N) {
}
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
OpenPOWER on IntegriCloud