diff options
author | Chris Lattner <sabre@nondot.org> | 2003-10-05 21:20:13 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-10-05 21:20:13 +0000 |
commit | 43f820d1f7638656be2158efac7dd8f5b08b8b77 (patch) | |
tree | 0c76a6800c38ea268a5d0e75a88f3ddea34ea9ed /lib/Transforms/Utils | |
parent | 5b15deedc01babcf40d74e0c9e48efead6a888e2 (diff) |
Change the interface to PromoteMemToReg to also take a DominatorTree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8883 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils')
-rw-r--r-- | lib/Transforms/Utils/Mem2Reg.cpp | 6 | ||||
-rw-r--r-- | lib/Transforms/Utils/PromoteMemoryToRegister.cpp | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/Transforms/Utils/Mem2Reg.cpp b/lib/Transforms/Utils/Mem2Reg.cpp index 16d05d8213..5203394099 100644 --- a/lib/Transforms/Utils/Mem2Reg.cpp +++ b/lib/Transforms/Utils/Mem2Reg.cpp @@ -25,6 +25,7 @@ namespace { // getAnalysisUsage - We need dominance frontiers // virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.addRequired<DominatorTree>(); AU.addRequired<DominanceFrontier>(); AU.addRequired<TargetData>(); AU.setPreservesCFG(); @@ -41,6 +42,9 @@ bool PromotePass::runOnFunction(Function &F) { BasicBlock &BB = F.getEntryBlock(); // Get the entry node for the function bool Changed = false; + + DominatorTree &DT = getAnalysis<DominatorTree>(); + DominanceFrontier &DF = getAnalysis<DominanceFrontier>(); while (1) { Allocas.clear(); @@ -54,7 +58,7 @@ bool PromotePass::runOnFunction(Function &F) { if (Allocas.empty()) break; - PromoteMemToReg(Allocas, getAnalysis<DominanceFrontier>(), TD); + PromoteMemToReg(Allocas, DT, DF, TD); NumPromoted += Allocas.size(); Changed = true; } diff --git a/lib/Transforms/Utils/PromoteMemoryToRegister.cpp b/lib/Transforms/Utils/PromoteMemoryToRegister.cpp index 019203d3fa..ce964fc43f 100644 --- a/lib/Transforms/Utils/PromoteMemoryToRegister.cpp +++ b/lib/Transforms/Utils/PromoteMemoryToRegister.cpp @@ -361,7 +361,8 @@ void PromoteMem2Reg::RenamePass(BasicBlock *BB, BasicBlock *Pred, /// of the function at all. All allocas must be from the same function. /// void PromoteMemToReg(const std::vector<AllocaInst*> &Allocas, - DominanceFrontier &DF, const TargetData &TD) { + DominatorTree &DT, DominanceFrontier &DF, + const TargetData &TD) { // If there is nothing to do, bail out... if (Allocas.empty()) return; PromoteMem2Reg(Allocas, DF, TD).run(); |