summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2016-02-28 16:38:46 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2016-02-28 16:38:46 +0000
commitde40e7437ed4515a6849da064d28e3455591b612 (patch)
tree4f54c35b0eeb03e431f49eeb071b8b2b98eb36b2 /llvm/include
parentc778aa4a302e68a5090ee4fcd64628df24b9beea (diff)
downloadbcm5719-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.h2
-rw-r--r--llvm/include/llvm/Analysis/AssumptionCache.h2
-rw-r--r--llvm/include/llvm/Analysis/CGSCCPassManager.h6
-rw-r--r--llvm/include/llvm/Analysis/DominanceFrontier.h2
-rw-r--r--llvm/include/llvm/Analysis/LazyCallGraph.h2
-rw-r--r--llvm/include/llvm/Analysis/LoopInfo.h2
-rw-r--r--llvm/include/llvm/Analysis/LoopPassManager.h2
-rw-r--r--llvm/include/llvm/Analysis/PostDominators.h2
-rw-r--r--llvm/include/llvm/Analysis/RegionInfo.h2
-rw-r--r--llvm/include/llvm/Analysis/ScalarEvolution.h2
-rw-r--r--llvm/include/llvm/Analysis/TargetLibraryInfo.h2
-rw-r--r--llvm/include/llvm/Analysis/TargetTransformInfo.h2
-rw-r--r--llvm/include/llvm/IR/Dominators.h2
-rw-r--r--llvm/include/llvm/IR/PassManager.h2
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.
///
OpenPOWER on IntegriCloud