diff options
| author | NAKAMURA Takumi <geek4civic@gmail.com> | 2016-02-28 16:38:46 +0000 |
|---|---|---|
| committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2016-02-28 16:38:46 +0000 |
| commit | de40e7437ed4515a6849da064d28e3455591b612 (patch) | |
| tree | 4f54c35b0eeb03e431f49eeb071b8b2b98eb36b2 /llvm/include | |
| parent | c778aa4a302e68a5090ee4fcd64628df24b9beea (diff) | |
| download | bcm5719-llvm-de40e7437ed4515a6849da064d28e3455591b612.tar.gz bcm5719-llvm-de40e7437ed4515a6849da064d28e3455591b612.zip | |
[PM] Appease mingw32's auto-import DLL build with minimal tweaks.
char AnalysisBase::ID should be declared as extern and defined in one module.
llvm-svn: 262185
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/Analysis/AliasAnalysis.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/AssumptionCache.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/CGSCCPassManager.h | 6 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/DominanceFrontier.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/LazyCallGraph.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/LoopInfo.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/LoopPassManager.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/PostDominators.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/RegionInfo.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/ScalarEvolution.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/TargetLibraryInfo.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/TargetTransformInfo.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/IR/Dominators.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/IR/PassManager.h | 2 |
14 files changed, 32 insertions, 0 deletions
diff --git a/llvm/include/llvm/Analysis/AliasAnalysis.h b/llvm/include/llvm/Analysis/AliasAnalysis.h index 8422e010e45..327ae7bfc41 100644 --- a/llvm/include/llvm/Analysis/AliasAnalysis.h +++ b/llvm/include/llvm/Analysis/AliasAnalysis.h @@ -1024,6 +1024,8 @@ private: } }; +extern template class AnalysisBase<AAManager>; + /// A wrapper pass to provide the legacy pass manager access to a suitably /// prepared AAResults object. class AAResultsWrapperPass : public FunctionPass { diff --git a/llvm/include/llvm/Analysis/AssumptionCache.h b/llvm/include/llvm/Analysis/AssumptionCache.h index 79d2bc966e4..fbd4b5243ad 100644 --- a/llvm/include/llvm/Analysis/AssumptionCache.h +++ b/llvm/include/llvm/Analysis/AssumptionCache.h @@ -105,6 +105,8 @@ struct AssumptionAnalysis : AnalysisBase<AssumptionAnalysis> { AssumptionCache run(Function &F) { return AssumptionCache(F); } }; +extern template class AnalysisBase<AssumptionAnalysis>; + /// \brief Printer pass for the \c AssumptionAnalysis results. class AssumptionPrinterPass : public PassBase<AssumptionPrinterPass> { raw_ostream &OS; diff --git a/llvm/include/llvm/Analysis/CGSCCPassManager.h b/llvm/include/llvm/Analysis/CGSCCPassManager.h index 4da08741a8a..5cc1c382ad4 100644 --- a/llvm/include/llvm/Analysis/CGSCCPassManager.h +++ b/llvm/include/llvm/Analysis/CGSCCPassManager.h @@ -48,12 +48,16 @@ extern template class InnerAnalysisManagerProxy<CGSCCAnalysisManager, Module>; typedef InnerAnalysisManagerProxy<CGSCCAnalysisManager, Module> CGSCCAnalysisManagerModuleProxy; +extern template class AnalysisBase<CGSCCAnalysisManagerModuleProxy>; + extern template class OuterAnalysisManagerProxy<ModuleAnalysisManager, LazyCallGraph::SCC>; /// A proxy from a \c ModuleAnalysisManager to an \c SCC. typedef OuterAnalysisManagerProxy<ModuleAnalysisManager, LazyCallGraph::SCC> ModuleAnalysisManagerCGSCCProxy; +extern template class AnalysisBase<ModuleAnalysisManagerCGSCCProxy>; + /// \brief The core module pass which does a post-order walk of the SCCs and /// runs a CGSCC pass over each one. /// @@ -144,6 +148,8 @@ extern template class InnerAnalysisManagerProxy<FunctionAnalysisManager, typedef InnerAnalysisManagerProxy<FunctionAnalysisManager, LazyCallGraph::SCC> FunctionAnalysisManagerCGSCCProxy; +extern template class AnalysisBase<FunctionAnalysisManagerCGSCCProxy>; + extern template class OuterAnalysisManagerProxy<CGSCCAnalysisManager, Function>; /// A proxy from a \c CGSCCAnalysisManager to a \c Function. typedef OuterAnalysisManagerProxy<CGSCCAnalysisManager, Function> diff --git a/llvm/include/llvm/Analysis/DominanceFrontier.h b/llvm/include/llvm/Analysis/DominanceFrontier.h index 62f9f0eab18..ea2743dc810 100644 --- a/llvm/include/llvm/Analysis/DominanceFrontier.h +++ b/llvm/include/llvm/Analysis/DominanceFrontier.h @@ -176,6 +176,8 @@ struct DominanceFrontierAnalysis : AnalysisBase<DominanceFrontierAnalysis> { DominanceFrontier run(Function &F, AnalysisManager<Function> *AM); }; +extern template class AnalysisBase<DominanceFrontierAnalysis>; + /// \brief Printer pass for the \c DominanceFrontier. class DominanceFrontierPrinterPass : public PassBase<DominanceFrontierPrinterPass> { diff --git a/llvm/include/llvm/Analysis/LazyCallGraph.h b/llvm/include/llvm/Analysis/LazyCallGraph.h index 0c052460578..af2e067690d 100644 --- a/llvm/include/llvm/Analysis/LazyCallGraph.h +++ b/llvm/include/llvm/Analysis/LazyCallGraph.h @@ -906,6 +906,8 @@ struct LazyCallGraphAnalysis : AnalysisBase<LazyCallGraphAnalysis> { LazyCallGraph run(Module &M) { return LazyCallGraph(M); } }; +extern template class AnalysisBase<LazyCallGraphAnalysis>; + /// A pass which prints the call graph to a \c raw_ostream. /// /// This is primarily useful for testing the analysis. diff --git a/llvm/include/llvm/Analysis/LoopInfo.h b/llvm/include/llvm/Analysis/LoopInfo.h index 55bafd26185..d33c215e1f4 100644 --- a/llvm/include/llvm/Analysis/LoopInfo.h +++ b/llvm/include/llvm/Analysis/LoopInfo.h @@ -793,6 +793,8 @@ struct LoopAnalysis : AnalysisBase<LoopAnalysis> { LoopInfo run(Function &F, AnalysisManager<Function> *AM); }; +extern template class AnalysisBase<LoopAnalysis>; + /// \brief Printer pass for the \c LoopAnalysis results. class LoopPrinterPass : public PassBase<LoopPrinterPass> { raw_ostream &OS; diff --git a/llvm/include/llvm/Analysis/LoopPassManager.h b/llvm/include/llvm/Analysis/LoopPassManager.h index c3a6c4e3545..34bd78d6eb3 100644 --- a/llvm/include/llvm/Analysis/LoopPassManager.h +++ b/llvm/include/llvm/Analysis/LoopPassManager.h @@ -43,6 +43,8 @@ extern template class InnerAnalysisManagerProxy<LoopAnalysisManager, Function>; typedef InnerAnalysisManagerProxy<LoopAnalysisManager, Function> LoopAnalysisManagerFunctionProxy; +extern template class AnalysisBase<LoopAnalysisManagerFunctionProxy>; + extern template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop>; /// A proxy from a \c FunctionAnalysisManager to a \c Loop. typedef OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop> diff --git a/llvm/include/llvm/Analysis/PostDominators.h b/llvm/include/llvm/Analysis/PostDominators.h index 8800d4ffd46..fac8e88c2b0 100644 --- a/llvm/include/llvm/Analysis/PostDominators.h +++ b/llvm/include/llvm/Analysis/PostDominators.h @@ -46,6 +46,8 @@ struct PostDominatorTreeAnalysis : AnalysisBase<PostDominatorTreeAnalysis> { PostDominatorTree run(Function &F); }; +extern template class AnalysisBase<PostDominatorTreeAnalysis>; + /// \brief Printer pass for the \c PostDominatorTree. class PostDominatorTreePrinterPass : public PassBase<PostDominatorTreePrinterPass> { diff --git a/llvm/include/llvm/Analysis/RegionInfo.h b/llvm/include/llvm/Analysis/RegionInfo.h index 69e00375de9..1ab8bbef10f 100644 --- a/llvm/include/llvm/Analysis/RegionInfo.h +++ b/llvm/include/llvm/Analysis/RegionInfo.h @@ -929,6 +929,8 @@ struct RegionInfoAnalysis : AnalysisBase<RegionInfoAnalysis> { RegionInfo run(Function &F, AnalysisManager<Function> *AM); }; +extern template class AnalysisBase<RegionInfoAnalysis>; + /// \brief Printer pass for the \c RegionInfo. class RegionInfoPrinterPass : public PassBase<RegionInfoPrinterPass> { raw_ostream &OS; diff --git a/llvm/include/llvm/Analysis/ScalarEvolution.h b/llvm/include/llvm/Analysis/ScalarEvolution.h index 8487c969531..02245911112 100644 --- a/llvm/include/llvm/Analysis/ScalarEvolution.h +++ b/llvm/include/llvm/Analysis/ScalarEvolution.h @@ -1421,6 +1421,8 @@ namespace llvm { ScalarEvolution run(Function &F, AnalysisManager<Function> *AM); }; + extern template class AnalysisBase<ScalarEvolutionAnalysis>; + /// \brief Printer pass for the \c ScalarEvolutionAnalysis results. class ScalarEvolutionPrinterPass : public PassBase<ScalarEvolutionPrinterPass> { diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.h b/llvm/include/llvm/Analysis/TargetLibraryInfo.h index 6e0776fd17b..b6792586fae 100644 --- a/llvm/include/llvm/Analysis/TargetLibraryInfo.h +++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.h @@ -299,6 +299,8 @@ private: TargetLibraryInfoImpl &lookupInfoImpl(Triple T); }; +extern template class AnalysisBase<TargetLibraryAnalysis>; + class TargetLibraryInfoWrapperPass : public ImmutablePass { TargetLibraryInfoImpl TLIImpl; TargetLibraryInfo TLI; diff --git a/llvm/include/llvm/Analysis/TargetTransformInfo.h b/llvm/include/llvm/Analysis/TargetTransformInfo.h index 7c97b4fd3b9..bdc589c60ea 100644 --- a/llvm/include/llvm/Analysis/TargetTransformInfo.h +++ b/llvm/include/llvm/Analysis/TargetTransformInfo.h @@ -938,6 +938,8 @@ private: static Result getDefaultTTI(const Function &F); }; +extern template class AnalysisBase<TargetIRAnalysis>; + /// \brief Wrapper pass for TargetTransformInfo. /// /// This pass can be constructed from a TTI object which it stores internally diff --git a/llvm/include/llvm/IR/Dominators.h b/llvm/include/llvm/IR/Dominators.h index dece1533acc..1082896f0c8 100644 --- a/llvm/include/llvm/IR/Dominators.h +++ b/llvm/include/llvm/IR/Dominators.h @@ -190,6 +190,8 @@ struct DominatorTreeAnalysis : AnalysisBase<DominatorTreeAnalysis> { DominatorTree run(Function &F); }; +extern template class AnalysisBase<DominatorTreeAnalysis>; + /// \brief Printer pass for the \c DominatorTree. class DominatorTreePrinterPass : public PassBase<DominatorTreePrinterPass> { raw_ostream &OS; diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h index 27ca84194a6..1ba04fd0e02 100644 --- a/llvm/include/llvm/IR/PassManager.h +++ b/llvm/include/llvm/IR/PassManager.h @@ -749,6 +749,8 @@ extern template class InnerAnalysisManagerProxy<FunctionAnalysisManager, typedef InnerAnalysisManagerProxy<FunctionAnalysisManager, Module> FunctionAnalysisManagerModuleProxy; +extern template class AnalysisBase<FunctionAnalysisManagerModuleProxy>; + /// \brief A function analysis which acts as a proxy for a module analysis /// manager. /// |

