diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Analysis/AliasAnalysis.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Analysis/AssumptionCache.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/CGSCCPassManager.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Analysis/DominanceFrontier.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/LazyCallGraph.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/LoopInfo.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/LoopPassManager.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Analysis/PostDominators.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/RegionInfo.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/ScalarEvolution.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/TargetLibraryInfo.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Analysis/TargetTransformInfo.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/IR/Dominators.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/IR/PassManager.cpp | 1 |
14 files changed, 28 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/AliasAnalysis.cpp b/llvm/lib/Analysis/AliasAnalysis.cpp index a30aedc4060..81d8d702885 100644 --- a/llvm/lib/Analysis/AliasAnalysis.cpp +++ b/llvm/lib/Analysis/AliasAnalysis.cpp @@ -390,6 +390,9 @@ bool AAResults::canInstructionRangeModRef(const Instruction &I1, // Provide a definition for the root virtual destructor. AAResults::Concept::~Concept() {} +// Provide a definition for the static object used to identify passes. +template class llvm::AnalysisBase<AAManager>; + namespace { /// A wrapper pass for external alias analyses. This just squirrels away the /// callback used to run any analyses and register their results. diff --git a/llvm/lib/Analysis/AssumptionCache.cpp b/llvm/lib/Analysis/AssumptionCache.cpp index 6af2dc12d06..365397fd083 100644 --- a/llvm/lib/Analysis/AssumptionCache.cpp +++ b/llvm/lib/Analysis/AssumptionCache.cpp @@ -74,6 +74,8 @@ void AssumptionCache::registerAssumption(CallInst *CI) { #endif } +template class llvm::AnalysisBase<AssumptionAnalysis>; + PreservedAnalyses AssumptionPrinterPass::run(Function &F, AnalysisManager<Function> *AM) { AssumptionCache &AC = AM->getResult<AssumptionAnalysis>(F); diff --git a/llvm/lib/Analysis/CGSCCPassManager.cpp b/llvm/lib/Analysis/CGSCCPassManager.cpp index 6326b34d68a..cabbf917603 100644 --- a/llvm/lib/Analysis/CGSCCPassManager.cpp +++ b/llvm/lib/Analysis/CGSCCPassManager.cpp @@ -18,9 +18,12 @@ namespace llvm { template class PassManager<LazyCallGraph::SCC>; template class AnalysisManager<LazyCallGraph::SCC>; template class InnerAnalysisManagerProxy<CGSCCAnalysisManager, Module>; +template class AnalysisBase<CGSCCAnalysisManagerModuleProxy>; template class OuterAnalysisManagerProxy<ModuleAnalysisManager, LazyCallGraph::SCC>; +template class AnalysisBase<ModuleAnalysisManagerCGSCCProxy>; template class InnerAnalysisManagerProxy<FunctionAnalysisManager, LazyCallGraph::SCC>; +template class AnalysisBase<FunctionAnalysisManagerCGSCCProxy>; template class OuterAnalysisManagerProxy<CGSCCAnalysisManager, Function>; } diff --git a/llvm/lib/Analysis/DominanceFrontier.cpp b/llvm/lib/Analysis/DominanceFrontier.cpp index 00904a95ce7..7ec70c73f8b 100644 --- a/llvm/lib/Analysis/DominanceFrontier.cpp +++ b/llvm/lib/Analysis/DominanceFrontier.cpp @@ -56,6 +56,8 @@ LLVM_DUMP_METHOD void DominanceFrontierWrapperPass::dump() const { } #endif +template class llvm::AnalysisBase<DominanceFrontierAnalysis>; + DominanceFrontier DominanceFrontierAnalysis::run(Function &F, FunctionAnalysisManager *AM) { DominanceFrontier DF; diff --git a/llvm/lib/Analysis/LazyCallGraph.cpp b/llvm/lib/Analysis/LazyCallGraph.cpp index 88f5cd7dd9f..718c86410cc 100644 --- a/llvm/lib/Analysis/LazyCallGraph.cpp +++ b/llvm/lib/Analysis/LazyCallGraph.cpp @@ -1499,6 +1499,8 @@ LazyCallGraph::RefSCC *LazyCallGraph::getNextRefSCCInPostOrder() { } } +template class llvm::AnalysisBase<LazyCallGraphAnalysis>; + LazyCallGraphPrinterPass::LazyCallGraphPrinterPass(raw_ostream &OS) : OS(OS) {} static void printNode(raw_ostream &OS, LazyCallGraph::Node &N) { diff --git a/llvm/lib/Analysis/LoopInfo.cpp b/llvm/lib/Analysis/LoopInfo.cpp index bcec24c822f..51444b60b06 100644 --- a/llvm/lib/Analysis/LoopInfo.cpp +++ b/llvm/lib/Analysis/LoopInfo.cpp @@ -641,6 +641,8 @@ void LoopInfo::markAsRemoved(Loop *Unloop) { } } +template class llvm::AnalysisBase<LoopAnalysis>; + LoopInfo LoopAnalysis::run(Function &F, AnalysisManager<Function> *AM) { // FIXME: Currently we create a LoopInfo from scratch for every function. // This may prove to be too wasteful due to deallocating and re-allocating diff --git a/llvm/lib/Analysis/LoopPassManager.cpp b/llvm/lib/Analysis/LoopPassManager.cpp index 76210fa89c0..4e90cfac9e5 100644 --- a/llvm/lib/Analysis/LoopPassManager.cpp +++ b/llvm/lib/Analysis/LoopPassManager.cpp @@ -16,5 +16,6 @@ namespace llvm { template class PassManager<Loop>; template class AnalysisManager<Loop>; template class InnerAnalysisManagerProxy<LoopAnalysisManager, Function>; +template class AnalysisBase<LoopAnalysisManagerFunctionProxy>; template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop>; } diff --git a/llvm/lib/Analysis/PostDominators.cpp b/llvm/lib/Analysis/PostDominators.cpp index d617a876b84..39ac455761d 100644 --- a/llvm/lib/Analysis/PostDominators.cpp +++ b/llvm/lib/Analysis/PostDominators.cpp @@ -44,6 +44,8 @@ FunctionPass* llvm::createPostDomTree() { return new PostDominatorTreeWrapperPass(); } +template class llvm::AnalysisBase<PostDominatorTreeAnalysis>; + PostDominatorTree PostDominatorTreeAnalysis::run(Function &F) { PostDominatorTree PDT; PDT.recalculate(F); diff --git a/llvm/lib/Analysis/RegionInfo.cpp b/llvm/lib/Analysis/RegionInfo.cpp index 40501e6f7b6..87ceb35367b 100644 --- a/llvm/lib/Analysis/RegionInfo.cpp +++ b/llvm/lib/Analysis/RegionInfo.cpp @@ -185,6 +185,8 @@ namespace llvm { // RegionInfoAnalysis implementation // +template class llvm::AnalysisBase<RegionInfoAnalysis>; + RegionInfo RegionInfoAnalysis::run(Function &F, AnalysisManager<Function> *AM) { RegionInfo RI; auto *DT = &AM->getResult<DominatorTreeAnalysis>(F); diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 2056306e127..e493a28a145 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -9554,6 +9554,8 @@ void ScalarEvolution::verify() const { // TODO: Verify more things. } +template class llvm::AnalysisBase<ScalarEvolutionAnalysis>; + ScalarEvolution ScalarEvolutionAnalysis::run(Function &F, AnalysisManager<Function> *AM) { return ScalarEvolution(F, AM->getResult<TargetLibraryAnalysis>(F), diff --git a/llvm/lib/Analysis/TargetLibraryInfo.cpp b/llvm/lib/Analysis/TargetLibraryInfo.cpp index 950ee549f80..38cd3ec40f0 100644 --- a/llvm/lib/Analysis/TargetLibraryInfo.cpp +++ b/llvm/lib/Analysis/TargetLibraryInfo.cpp @@ -636,6 +636,8 @@ TargetLibraryInfoWrapperPass::TargetLibraryInfoWrapperPass( initializeTargetLibraryInfoWrapperPassPass(*PassRegistry::getPassRegistry()); } +template class llvm::AnalysisBase<TargetLibraryAnalysis>; + // Register the basic pass. INITIALIZE_PASS(TargetLibraryInfoWrapperPass, "targetlibinfo", "Target Library Information", false, true) diff --git a/llvm/lib/Analysis/TargetTransformInfo.cpp b/llvm/lib/Analysis/TargetTransformInfo.cpp index a9e18e01caa..7380c44f0dd 100644 --- a/llvm/lib/Analysis/TargetTransformInfo.cpp +++ b/llvm/lib/Analysis/TargetTransformInfo.cpp @@ -377,6 +377,8 @@ TargetIRAnalysis::Result TargetIRAnalysis::run(const Function &F) { return TTICallback(F); } +template class llvm::AnalysisBase<TargetIRAnalysis>; + TargetIRAnalysis::Result TargetIRAnalysis::getDefaultTTI(const Function &F) { return Result(F.getParent()->getDataLayout()); } diff --git a/llvm/lib/IR/Dominators.cpp b/llvm/lib/IR/Dominators.cpp index c47091e2908..56247bf8598 100644 --- a/llvm/lib/IR/Dominators.cpp +++ b/llvm/lib/IR/Dominators.cpp @@ -308,6 +308,8 @@ DominatorTree DominatorTreeAnalysis::run(Function &F) { return DT; } +template class llvm::AnalysisBase<DominatorTreeAnalysis>; + DominatorTreePrinterPass::DominatorTreePrinterPass(raw_ostream &OS) : OS(OS) {} PreservedAnalyses DominatorTreePrinterPass::run(Function &F, diff --git a/llvm/lib/IR/PassManager.cpp b/llvm/lib/IR/PassManager.cpp index 9d5b4cb0516..eb5ba437a29 100644 --- a/llvm/lib/IR/PassManager.cpp +++ b/llvm/lib/IR/PassManager.cpp @@ -20,5 +20,6 @@ template class PassManager<Function>; template class AnalysisManager<Module>; template class AnalysisManager<Function>; template class InnerAnalysisManagerProxy<FunctionAnalysisManager, Module>; +template class AnalysisBase<FunctionAnalysisManagerModuleProxy>; template class OuterAnalysisManagerProxy<ModuleAnalysisManager, Function>; } |