diff options
author | Hongbin Zheng <etherzhhb@gmail.com> | 2016-02-25 16:45:53 +0000 |
---|---|---|
committer | Hongbin Zheng <etherzhhb@gmail.com> | 2016-02-25 16:45:53 +0000 |
commit | 66b19fbc4e8fda0aa7489ff1bcbc7d0b0f19a8fb (patch) | |
tree | ccba68cc3d7806812d54c54987229c1a36750330 /llvm/lib | |
parent | ad782ce3f7e282a818ad062ba3c18c96b7e742b5 (diff) | |
download | bcm5719-llvm-66b19fbc4e8fda0aa7489ff1bcbc7d0b0f19a8fb.tar.gz bcm5719-llvm-66b19fbc4e8fda0aa7489ff1bcbc7d0b0f19a8fb.zip |
Revert "Introduce analysis pass to compute PostDominators in the new pass manager. NFC"
This reverts commit a3e5cc6a51ab5ad88d1760c63284294a4e34c018.
llvm-svn: 261891
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Analysis/Analysis.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/DivergenceAnalysis.cpp | 7 | ||||
-rw-r--r-- | llvm/lib/Analysis/DomPrinter.cpp | 48 | ||||
-rw-r--r-- | llvm/lib/Analysis/PostDominators.cpp | 34 | ||||
-rw-r--r-- | llvm/lib/Analysis/RegionInfo.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/CodeGen/MachineRegionInfo.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Passes/PassBuilder.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Passes/PassRegistry.def | 2 |
8 files changed, 28 insertions, 74 deletions
diff --git a/llvm/lib/Analysis/Analysis.cpp b/llvm/lib/Analysis/Analysis.cpp index 9c53dedad03..811741962aa 100644 --- a/llvm/lib/Analysis/Analysis.cpp +++ b/llvm/lib/Analysis/Analysis.cpp @@ -60,7 +60,7 @@ void llvm::initializeAnalysis(PassRegistry &Registry) { initializeMemoryDependenceAnalysisPass(Registry); initializeModuleDebugInfoPrinterPass(Registry); initializeObjCARCAAWrapperPassPass(Registry); - initializePostDominatorTreeWrapperPassPass(Registry); + initializePostDominatorTreePass(Registry); initializeRegionInfoPassPass(Registry); initializeRegionViewerPass(Registry); initializeRegionPrinterPass(Registry); diff --git a/llvm/lib/Analysis/DivergenceAnalysis.cpp b/llvm/lib/Analysis/DivergenceAnalysis.cpp index 0e1cfcfe259..343fe613b7e 100644 --- a/llvm/lib/Analysis/DivergenceAnalysis.cpp +++ b/llvm/lib/Analysis/DivergenceAnalysis.cpp @@ -258,7 +258,7 @@ char DivergenceAnalysis::ID = 0; INITIALIZE_PASS_BEGIN(DivergenceAnalysis, "divergence", "Divergence Analysis", false, true) INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) -INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass) +INITIALIZE_PASS_DEPENDENCY(PostDominatorTree) INITIALIZE_PASS_END(DivergenceAnalysis, "divergence", "Divergence Analysis", false, true) @@ -268,7 +268,7 @@ FunctionPass *llvm::createDivergenceAnalysisPass() { void DivergenceAnalysis::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<DominatorTreeWrapperPass>(); - AU.addRequired<PostDominatorTreeWrapperPass>(); + AU.addRequired<PostDominatorTree>(); AU.setPreservesAll(); } @@ -284,10 +284,9 @@ bool DivergenceAnalysis::runOnFunction(Function &F) { return false; DivergentValues.clear(); - auto &PDT = getAnalysis<PostDominatorTreeWrapperPass>().getPostDomTree(); DivergencePropagator DP(F, TTI, getAnalysis<DominatorTreeWrapperPass>().getDomTree(), - PDT, DivergentValues); + getAnalysis<PostDominatorTree>(), DivergentValues); DP.populateWithSourcesOfDivergence(); DP.propagate(); return false; diff --git a/llvm/lib/Analysis/DomPrinter.cpp b/llvm/lib/Analysis/DomPrinter.cpp index 7acfb41500d..0c880df54f8 100644 --- a/llvm/lib/Analysis/DomPrinter.cpp +++ b/llvm/lib/Analysis/DomPrinter.cpp @@ -111,36 +111,20 @@ struct DomOnlyViewer : public DOTGraphTraitsViewer< } }; -struct PostDominatorTreeWrapperPassAnalysisGraphTraits { - static PostDominatorTree *getGraph(PostDominatorTreeWrapperPass *PDTWP) { - return &PDTWP->getPostDomTree(); - } -}; - -struct PostDomViewer : public DOTGraphTraitsViewer< - PostDominatorTreeWrapperPass, false, - PostDominatorTree *, - PostDominatorTreeWrapperPassAnalysisGraphTraits> { +struct PostDomViewer + : public DOTGraphTraitsViewer<PostDominatorTree, false> { static char ID; PostDomViewer() : - DOTGraphTraitsViewer<PostDominatorTreeWrapperPass, false, - PostDominatorTree *, - PostDominatorTreeWrapperPassAnalysisGraphTraits>( - "postdom", ID){ + DOTGraphTraitsViewer<PostDominatorTree, false>("postdom", ID){ initializePostDomViewerPass(*PassRegistry::getPassRegistry()); } }; -struct PostDomOnlyViewer : public DOTGraphTraitsViewer< - PostDominatorTreeWrapperPass, true, - PostDominatorTree *, - PostDominatorTreeWrapperPassAnalysisGraphTraits> { +struct PostDomOnlyViewer + : public DOTGraphTraitsViewer<PostDominatorTree, true> { static char ID; PostDomOnlyViewer() : - DOTGraphTraitsViewer<PostDominatorTreeWrapperPass, true, - PostDominatorTree *, - PostDominatorTreeWrapperPassAnalysisGraphTraits>( - "postdomonly", ID){ + DOTGraphTraitsViewer<PostDominatorTree, true>("postdomonly", ID){ initializePostDomOnlyViewerPass(*PassRegistry::getPassRegistry()); } }; @@ -191,31 +175,19 @@ struct DomOnlyPrinter : public DOTGraphTraitsPrinter< }; struct PostDomPrinter - : public DOTGraphTraitsPrinter< - PostDominatorTreeWrapperPass, false, - PostDominatorTree *, - PostDominatorTreeWrapperPassAnalysisGraphTraits> { + : public DOTGraphTraitsPrinter<PostDominatorTree, false> { static char ID; PostDomPrinter() : - DOTGraphTraitsPrinter<PostDominatorTreeWrapperPass, false, - PostDominatorTree *, - PostDominatorTreeWrapperPassAnalysisGraphTraits>( - "postdom", ID) { + DOTGraphTraitsPrinter<PostDominatorTree, false>("postdom", ID) { initializePostDomPrinterPass(*PassRegistry::getPassRegistry()); } }; struct PostDomOnlyPrinter - : public DOTGraphTraitsPrinter< - PostDominatorTreeWrapperPass, true, - PostDominatorTree *, - PostDominatorTreeWrapperPassAnalysisGraphTraits> { + : public DOTGraphTraitsPrinter<PostDominatorTree, true> { static char ID; PostDomOnlyPrinter() : - DOTGraphTraitsPrinter<PostDominatorTreeWrapperPass, true, - PostDominatorTree *, - PostDominatorTreeWrapperPassAnalysisGraphTraits>( - "postdomonly", ID) { + DOTGraphTraitsPrinter<PostDominatorTree, true>("postdomonly", ID) { initializePostDomOnlyPrinterPass(*PassRegistry::getPassRegistry()); } }; diff --git a/llvm/lib/Analysis/PostDominators.cpp b/llvm/lib/Analysis/PostDominators.cpp index b515108fafb..6d929091e3d 100644 --- a/llvm/lib/Analysis/PostDominators.cpp +++ b/llvm/lib/Analysis/PostDominators.cpp @@ -16,7 +16,6 @@ #include "llvm/ADT/SetOperations.h" #include "llvm/IR/CFG.h" #include "llvm/IR/Instructions.h" -#include "llvm/IR/PassManager.h" #include "llvm/Support/Debug.h" #include "llvm/Support/GenericDomTreeConstruction.h" using namespace llvm; @@ -27,38 +26,25 @@ using namespace llvm; // PostDominatorTree Implementation //===----------------------------------------------------------------------===// -char PostDominatorTreeWrapperPass::ID = 0; -INITIALIZE_PASS(PostDominatorTreeWrapperPass, "postdomtree", +char PostDominatorTree::ID = 0; +INITIALIZE_PASS(PostDominatorTree, "postdomtree", "Post-Dominator Tree Construction", true, true) -bool PostDominatorTreeWrapperPass::runOnFunction(Function &F) { - DT.recalculate(F); +bool PostDominatorTree::runOnFunction(Function &F) { + DT->recalculate(F); return false; } -void PostDominatorTreeWrapperPass::print(raw_ostream &OS, const Module *) const { - DT.print(OS); +PostDominatorTree::~PostDominatorTree() { + delete DT; } -FunctionPass* llvm::createPostDomTree() { - return new PostDominatorTreeWrapperPass(); +void PostDominatorTree::print(raw_ostream &OS, const Module *) const { + DT->print(OS); } -char PostDominatorTreeAnalysis::PassID; -PostDominatorTree PostDominatorTreeAnalysis::run(Function &F) { - PostDominatorTree PDT; - PDT.recalculate(F); - return PDT; +FunctionPass* llvm::createPostDomTree() { + return new PostDominatorTree(); } -PostDominatorTreePrinterPass::PostDominatorTreePrinterPass(raw_ostream &OS) - : OS(OS) {} - -PreservedAnalyses -PostDominatorTreePrinterPass::run(Function &F, FunctionAnalysisManager *AM) { - OS << "PostDominatorTree for function: " << F.getName() << "\n"; - AM->getResult<PostDominatorTreeAnalysis>(F).print(OS); - - return PreservedAnalyses::all(); -} diff --git a/llvm/lib/Analysis/RegionInfo.cpp b/llvm/lib/Analysis/RegionInfo.cpp index dac0cddc168..b6277bb6c12 100644 --- a/llvm/lib/Analysis/RegionInfo.cpp +++ b/llvm/lib/Analysis/RegionInfo.cpp @@ -128,7 +128,7 @@ bool RegionInfoPass::runOnFunction(Function &F) { releaseMemory(); auto DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); - auto PDT = &getAnalysis<PostDominatorTreeWrapperPass>().getPostDomTree(); + auto PDT = &getAnalysis<PostDominatorTree>(); auto DF = &getAnalysis<DominanceFrontier>(); RI.recalculate(F, DT, PDT, DF); @@ -146,8 +146,8 @@ void RegionInfoPass::verifyAnalysis() const { void RegionInfoPass::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequiredTransitive<DominatorTreeWrapperPass>(); + AU.addRequired<PostDominatorTree>(); AU.addRequired<DominanceFrontier>(); - AU.addRequired<PostDominatorTreeWrapperPass>(); } void RegionInfoPass::print(raw_ostream &OS, const Module *) const { @@ -165,8 +165,8 @@ char RegionInfoPass::ID = 0; INITIALIZE_PASS_BEGIN(RegionInfoPass, "regions", "Detect single entry single exit regions", true, true) INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) +INITIALIZE_PASS_DEPENDENCY(PostDominatorTree) INITIALIZE_PASS_DEPENDENCY(DominanceFrontier) -INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass) INITIALIZE_PASS_END(RegionInfoPass, "regions", "Detect single entry single exit regions", true, true) diff --git a/llvm/lib/CodeGen/MachineRegionInfo.cpp b/llvm/lib/CodeGen/MachineRegionInfo.cpp index 0f7ebb3da83..7d61792ff68 100644 --- a/llvm/lib/CodeGen/MachineRegionInfo.cpp +++ b/llvm/lib/CodeGen/MachineRegionInfo.cpp @@ -104,7 +104,7 @@ void MachineRegionInfoPass::verifyAnalysis() const { void MachineRegionInfoPass::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequiredTransitive<DominatorTreeWrapperPass>(); - AU.addRequired<PostDominatorTreeWrapperPass>(); + AU.addRequired<PostDominatorTree>(); AU.addRequired<DominanceFrontier>(); } diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index bd30fce7dc9..f043c92fd4f 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -24,7 +24,6 @@ #include "llvm/Analysis/CGSCCPassManager.h" #include "llvm/Analysis/LazyCallGraph.h" #include "llvm/Analysis/LoopInfo.h" -#include "llvm/Analysis/PostDominators.h" #include "llvm/Analysis/ScalarEvolution.h" #include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h" #include "llvm/Analysis/ScopedNoAliasAA.h" diff --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def index ccb40064cc8..1721fa1bc23 100644 --- a/llvm/lib/Passes/PassRegistry.def +++ b/llvm/lib/Passes/PassRegistry.def @@ -57,7 +57,6 @@ CGSCC_PASS("no-op-cgscc", NoOpCGSCCPass()) FUNCTION_ANALYSIS("aa", AAManager()) FUNCTION_ANALYSIS("assumptions", AssumptionAnalysis()) FUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis()) -FUNCTION_ANALYSIS("postdomtree", PostDominatorTreeAnalysis()) FUNCTION_ANALYSIS("loops", LoopAnalysis()) FUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis()) FUNCTION_ANALYSIS("scalar-evolution", ScalarEvolutionAnalysis()) @@ -90,7 +89,6 @@ FUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass()) FUNCTION_PASS("print", PrintFunctionPass(dbgs())) FUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs())) FUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs())) -FUNCTION_PASS("print<postdomtree>", PostDominatorTreePrinterPass(dbgs())) FUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs())) FUNCTION_PASS("print<scalar-evolution>", ScalarEvolutionPrinterPass(dbgs())) FUNCTION_PASS("simplify-cfg", SimplifyCFGPass()) |