diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2016-02-27 10:45:35 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2016-02-27 10:45:35 +0000 |
| commit | afcec4c55a5da0e91bca606ccc4e85be8e520f99 (patch) | |
| tree | e5cf9e8473665d3d6fd8b89124bee9b604c6be76 /llvm/include | |
| parent | 2a54094d40349e283f8398bc453d7c976af63892 (diff) | |
| download | bcm5719-llvm-afcec4c55a5da0e91bca606ccc4e85be8e520f99.tar.gz bcm5719-llvm-afcec4c55a5da0e91bca606ccc4e85be8e520f99.zip | |
[PM] Provide explicit instantiation declarations and definitions for the
PassManager and AnalysisManager template specializations as well.
llvm-svn: 262128
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/Analysis/CGSCCPassManager.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Analysis/LoopPassManager.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/IR/PassManager.h | 4 |
3 files changed, 8 insertions, 0 deletions
diff --git a/llvm/include/llvm/Analysis/CGSCCPassManager.h b/llvm/include/llvm/Analysis/CGSCCPassManager.h index 6fc84b6a2de..4da08741a8a 100644 --- a/llvm/include/llvm/Analysis/CGSCCPassManager.h +++ b/llvm/include/llvm/Analysis/CGSCCPassManager.h @@ -26,6 +26,7 @@ namespace llvm { +extern template class PassManager<LazyCallGraph::SCC>; /// \brief The CGSCC pass manager. /// /// See the documentation for the PassManager template for details. It runs @@ -33,6 +34,7 @@ namespace llvm { /// typedef serves as a convenient way to refer to this construct. typedef PassManager<LazyCallGraph::SCC> CGSCCPassManager; +extern template class AnalysisManager<LazyCallGraph::SCC>; /// \brief The CGSCC analysis manager. /// /// See the documentation for the AnalysisManager template for detail diff --git a/llvm/include/llvm/Analysis/LoopPassManager.h b/llvm/include/llvm/Analysis/LoopPassManager.h index 8693855b313..c3a6c4e3545 100644 --- a/llvm/include/llvm/Analysis/LoopPassManager.h +++ b/llvm/include/llvm/Analysis/LoopPassManager.h @@ -21,6 +21,7 @@ namespace llvm { +extern template class PassManager<Loop>; /// \brief The loop pass manager. /// /// See the documentation for the PassManager template for details. It runs a @@ -28,6 +29,7 @@ namespace llvm { /// typedef serves as a convenient way to refer to this construct. typedef PassManager<Loop> LoopPassManager; +extern template class AnalysisManager<Loop>; /// \brief The loop analysis manager. /// /// See the documentation for the AnalysisManager template for detail diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h index e51142d5e32..27ca84194a6 100644 --- a/llvm/include/llvm/IR/PassManager.h +++ b/llvm/include/llvm/IR/PassManager.h @@ -281,9 +281,11 @@ private: bool DebugLogging; }; +extern template class PassManager<Module>; /// \brief Convenience typedef for a pass manager over modules. typedef PassManager<Module> ModulePassManager; +extern template class PassManager<Function>; /// \brief Convenience typedef for a pass manager over functions. typedef PassManager<Function> FunctionPassManager; @@ -633,9 +635,11 @@ private: bool DebugLogging; }; +extern template class AnalysisManager<Module>; /// \brief Convenience typedef for the Module analysis manager. typedef AnalysisManager<Module> ModuleAnalysisManager; +extern template class AnalysisManager<Function>; /// \brief Convenience typedef for the Function analysis manager. typedef AnalysisManager<Function> FunctionAnalysisManager; |

