summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2016-02-27 10:45:35 +0000
committerChandler Carruth <chandlerc@gmail.com>2016-02-27 10:45:35 +0000
commitafcec4c55a5da0e91bca606ccc4e85be8e520f99 (patch)
treee5cf9e8473665d3d6fd8b89124bee9b604c6be76 /llvm/include
parent2a54094d40349e283f8398bc453d7c976af63892 (diff)
downloadbcm5719-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.h2
-rw-r--r--llvm/include/llvm/Analysis/LoopPassManager.h2
-rw-r--r--llvm/include/llvm/IR/PassManager.h4
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;
OpenPOWER on IntegriCloud