From: NAKAMURA Takumi Date: Sun, 28 Feb 2016 16:54:06 +0000 (+0000) Subject: Revert r262185, "[PM] Appease mingw32's auto-import DLL build with minimal tweaks." X-Git-Tag: llvmorg-3.9.0-rc1~12962 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ca04a1f720b349291b53d71d7f20046df6b3d9e5;p=platform%2Fupstream%2Fllvm.git Revert r262185, "[PM] Appease mingw32's auto-import DLL build with minimal tweaks." I'll rework soon. llvm-svn: 262186 --- diff --git a/llvm/include/llvm/Analysis/AliasAnalysis.h b/llvm/include/llvm/Analysis/AliasAnalysis.h index 327ae7b..8422e01 100644 --- a/llvm/include/llvm/Analysis/AliasAnalysis.h +++ b/llvm/include/llvm/Analysis/AliasAnalysis.h @@ -1024,8 +1024,6 @@ private: } }; -extern template class AnalysisBase; - /// 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 fbd4b52..79d2bc9 100644 --- a/llvm/include/llvm/Analysis/AssumptionCache.h +++ b/llvm/include/llvm/Analysis/AssumptionCache.h @@ -105,8 +105,6 @@ struct AssumptionAnalysis : AnalysisBase { AssumptionCache run(Function &F) { return AssumptionCache(F); } }; -extern template class AnalysisBase; - /// \brief Printer pass for the \c AssumptionAnalysis results. class AssumptionPrinterPass : public PassBase { raw_ostream &OS; diff --git a/llvm/include/llvm/Analysis/CGSCCPassManager.h b/llvm/include/llvm/Analysis/CGSCCPassManager.h index 5cc1c38..4da0874 100644 --- a/llvm/include/llvm/Analysis/CGSCCPassManager.h +++ b/llvm/include/llvm/Analysis/CGSCCPassManager.h @@ -48,16 +48,12 @@ extern template class InnerAnalysisManagerProxy; typedef InnerAnalysisManagerProxy CGSCCAnalysisManagerModuleProxy; -extern template class AnalysisBase; - extern template class OuterAnalysisManagerProxy; /// A proxy from a \c ModuleAnalysisManager to an \c SCC. typedef OuterAnalysisManagerProxy ModuleAnalysisManagerCGSCCProxy; -extern template class AnalysisBase; - /// \brief The core module pass which does a post-order walk of the SCCs and /// runs a CGSCC pass over each one. /// @@ -148,8 +144,6 @@ extern template class InnerAnalysisManagerProxy FunctionAnalysisManagerCGSCCProxy; -extern template class AnalysisBase; - extern template class OuterAnalysisManagerProxy; /// A proxy from a \c CGSCCAnalysisManager to a \c Function. typedef OuterAnalysisManagerProxy diff --git a/llvm/include/llvm/Analysis/DominanceFrontier.h b/llvm/include/llvm/Analysis/DominanceFrontier.h index ea2743d..62f9f0e 100644 --- a/llvm/include/llvm/Analysis/DominanceFrontier.h +++ b/llvm/include/llvm/Analysis/DominanceFrontier.h @@ -176,8 +176,6 @@ struct DominanceFrontierAnalysis : AnalysisBase { DominanceFrontier run(Function &F, AnalysisManager *AM); }; -extern template class AnalysisBase; - /// \brief Printer pass for the \c DominanceFrontier. class DominanceFrontierPrinterPass : public PassBase { diff --git a/llvm/include/llvm/Analysis/LazyCallGraph.h b/llvm/include/llvm/Analysis/LazyCallGraph.h index af2e067..0c05246 100644 --- a/llvm/include/llvm/Analysis/LazyCallGraph.h +++ b/llvm/include/llvm/Analysis/LazyCallGraph.h @@ -906,8 +906,6 @@ struct LazyCallGraphAnalysis : AnalysisBase { LazyCallGraph run(Module &M) { return LazyCallGraph(M); } }; -extern template class AnalysisBase; - /// 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 d33c215..55bafd2 100644 --- a/llvm/include/llvm/Analysis/LoopInfo.h +++ b/llvm/include/llvm/Analysis/LoopInfo.h @@ -793,8 +793,6 @@ struct LoopAnalysis : AnalysisBase { LoopInfo run(Function &F, AnalysisManager *AM); }; -extern template class AnalysisBase; - /// \brief Printer pass for the \c LoopAnalysis results. class LoopPrinterPass : public PassBase { raw_ostream &OS; diff --git a/llvm/include/llvm/Analysis/LoopPassManager.h b/llvm/include/llvm/Analysis/LoopPassManager.h index 34bd78d..c3a6c4e 100644 --- a/llvm/include/llvm/Analysis/LoopPassManager.h +++ b/llvm/include/llvm/Analysis/LoopPassManager.h @@ -43,8 +43,6 @@ extern template class InnerAnalysisManagerProxy; typedef InnerAnalysisManagerProxy LoopAnalysisManagerFunctionProxy; -extern template class AnalysisBase; - extern template class OuterAnalysisManagerProxy; /// A proxy from a \c FunctionAnalysisManager to a \c Loop. typedef OuterAnalysisManagerProxy diff --git a/llvm/include/llvm/Analysis/PostDominators.h b/llvm/include/llvm/Analysis/PostDominators.h index fac8e88..8800d4f 100644 --- a/llvm/include/llvm/Analysis/PostDominators.h +++ b/llvm/include/llvm/Analysis/PostDominators.h @@ -46,8 +46,6 @@ struct PostDominatorTreeAnalysis : AnalysisBase { PostDominatorTree run(Function &F); }; -extern template class AnalysisBase; - /// \brief Printer pass for the \c PostDominatorTree. class PostDominatorTreePrinterPass : public PassBase { diff --git a/llvm/include/llvm/Analysis/RegionInfo.h b/llvm/include/llvm/Analysis/RegionInfo.h index 1ab8bbe..69e0037 100644 --- a/llvm/include/llvm/Analysis/RegionInfo.h +++ b/llvm/include/llvm/Analysis/RegionInfo.h @@ -929,8 +929,6 @@ struct RegionInfoAnalysis : AnalysisBase { RegionInfo run(Function &F, AnalysisManager *AM); }; -extern template class AnalysisBase; - /// \brief Printer pass for the \c RegionInfo. class RegionInfoPrinterPass : public PassBase { raw_ostream &OS; diff --git a/llvm/include/llvm/Analysis/ScalarEvolution.h b/llvm/include/llvm/Analysis/ScalarEvolution.h index 0224591..8487c96 100644 --- a/llvm/include/llvm/Analysis/ScalarEvolution.h +++ b/llvm/include/llvm/Analysis/ScalarEvolution.h @@ -1421,8 +1421,6 @@ namespace llvm { ScalarEvolution run(Function &F, AnalysisManager *AM); }; - extern template class AnalysisBase; - /// \brief Printer pass for the \c ScalarEvolutionAnalysis results. class ScalarEvolutionPrinterPass : public PassBase { diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.h b/llvm/include/llvm/Analysis/TargetLibraryInfo.h index b679258..6e0776f 100644 --- a/llvm/include/llvm/Analysis/TargetLibraryInfo.h +++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.h @@ -299,8 +299,6 @@ private: TargetLibraryInfoImpl &lookupInfoImpl(Triple T); }; -extern template class AnalysisBase; - 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 bdc589c..7c97b4f 100644 --- a/llvm/include/llvm/Analysis/TargetTransformInfo.h +++ b/llvm/include/llvm/Analysis/TargetTransformInfo.h @@ -938,8 +938,6 @@ private: static Result getDefaultTTI(const Function &F); }; -extern template class AnalysisBase; - /// \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 1082896..dece153 100644 --- a/llvm/include/llvm/IR/Dominators.h +++ b/llvm/include/llvm/IR/Dominators.h @@ -190,8 +190,6 @@ struct DominatorTreeAnalysis : AnalysisBase { DominatorTree run(Function &F); }; -extern template class AnalysisBase; - /// \brief Printer pass for the \c DominatorTree. class DominatorTreePrinterPass : public PassBase { raw_ostream &OS; diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h index 1ba04fd..27ca841 100644 --- a/llvm/include/llvm/IR/PassManager.h +++ b/llvm/include/llvm/IR/PassManager.h @@ -749,8 +749,6 @@ extern template class InnerAnalysisManagerProxy FunctionAnalysisManagerModuleProxy; -extern template class AnalysisBase; - /// \brief A function analysis which acts as a proxy for a module analysis /// manager. /// diff --git a/llvm/lib/Analysis/AliasAnalysis.cpp b/llvm/lib/Analysis/AliasAnalysis.cpp index 29670cb..a30aedc 100644 --- a/llvm/lib/Analysis/AliasAnalysis.cpp +++ b/llvm/lib/Analysis/AliasAnalysis.cpp @@ -390,9 +390,6 @@ 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 AnalysisBase; - 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 6626b60..6af2dc1 100644 --- a/llvm/lib/Analysis/AssumptionCache.cpp +++ b/llvm/lib/Analysis/AssumptionCache.cpp @@ -74,8 +74,6 @@ void AssumptionCache::registerAssumption(CallInst *CI) { #endif } -template class AnalysisBase; - PreservedAnalyses AssumptionPrinterPass::run(Function &F, AnalysisManager *AM) { AssumptionCache &AC = AM->getResult(F); diff --git a/llvm/lib/Analysis/CGSCCPassManager.cpp b/llvm/lib/Analysis/CGSCCPassManager.cpp index cabbf91..6326b34 100644 --- a/llvm/lib/Analysis/CGSCCPassManager.cpp +++ b/llvm/lib/Analysis/CGSCCPassManager.cpp @@ -18,12 +18,9 @@ namespace llvm { template class PassManager; template class AnalysisManager; template class InnerAnalysisManagerProxy; -template class AnalysisBase; template class OuterAnalysisManagerProxy; -template class AnalysisBase; template class InnerAnalysisManagerProxy; -template class AnalysisBase; template class OuterAnalysisManagerProxy; } diff --git a/llvm/lib/Analysis/DominanceFrontier.cpp b/llvm/lib/Analysis/DominanceFrontier.cpp index 6fc6581..00904a9 100644 --- a/llvm/lib/Analysis/DominanceFrontier.cpp +++ b/llvm/lib/Analysis/DominanceFrontier.cpp @@ -56,8 +56,6 @@ LLVM_DUMP_METHOD void DominanceFrontierWrapperPass::dump() const { } #endif -template class AnalysisBase; - DominanceFrontier DominanceFrontierAnalysis::run(Function &F, FunctionAnalysisManager *AM) { DominanceFrontier DF; diff --git a/llvm/lib/Analysis/LazyCallGraph.cpp b/llvm/lib/Analysis/LazyCallGraph.cpp index 17a9d04..88f5cd7 100644 --- a/llvm/lib/Analysis/LazyCallGraph.cpp +++ b/llvm/lib/Analysis/LazyCallGraph.cpp @@ -1499,8 +1499,6 @@ LazyCallGraph::RefSCC *LazyCallGraph::getNextRefSCCInPostOrder() { } } -template class AnalysisBase; - 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 83ce4c3..bcec24c 100644 --- a/llvm/lib/Analysis/LoopInfo.cpp +++ b/llvm/lib/Analysis/LoopInfo.cpp @@ -641,8 +641,6 @@ void LoopInfo::markAsRemoved(Loop *Unloop) { } } -template class AnalysisBase; - LoopInfo LoopAnalysis::run(Function &F, AnalysisManager *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 4e90cfa..76210fa 100644 --- a/llvm/lib/Analysis/LoopPassManager.cpp +++ b/llvm/lib/Analysis/LoopPassManager.cpp @@ -16,6 +16,5 @@ namespace llvm { template class PassManager; template class AnalysisManager; template class InnerAnalysisManagerProxy; -template class AnalysisBase; template class OuterAnalysisManagerProxy; } diff --git a/llvm/lib/Analysis/PostDominators.cpp b/llvm/lib/Analysis/PostDominators.cpp index 1c4cfba..d617a87 100644 --- a/llvm/lib/Analysis/PostDominators.cpp +++ b/llvm/lib/Analysis/PostDominators.cpp @@ -44,8 +44,6 @@ FunctionPass* llvm::createPostDomTree() { return new PostDominatorTreeWrapperPass(); } -template class AnalysisBase; - 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 231db99..40501e6 100644 --- a/llvm/lib/Analysis/RegionInfo.cpp +++ b/llvm/lib/Analysis/RegionInfo.cpp @@ -185,8 +185,6 @@ namespace llvm { // RegionInfoAnalysis implementation // -template class AnalysisBase; - RegionInfo RegionInfoAnalysis::run(Function &F, AnalysisManager *AM) { RegionInfo RI; auto *DT = &AM->getResult(F); diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index f6c2a78..2056306 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -9554,8 +9554,6 @@ void ScalarEvolution::verify() const { // TODO: Verify more things. } -template class AnalysisBase; - ScalarEvolution ScalarEvolutionAnalysis::run(Function &F, AnalysisManager *AM) { return ScalarEvolution(F, AM->getResult(F), diff --git a/llvm/lib/Analysis/TargetLibraryInfo.cpp b/llvm/lib/Analysis/TargetLibraryInfo.cpp index d3fc779d..950ee54 100644 --- a/llvm/lib/Analysis/TargetLibraryInfo.cpp +++ b/llvm/lib/Analysis/TargetLibraryInfo.cpp @@ -636,8 +636,6 @@ TargetLibraryInfoWrapperPass::TargetLibraryInfoWrapperPass( initializeTargetLibraryInfoWrapperPassPass(*PassRegistry::getPassRegistry()); } -template class AnalysisBase; - // 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 9e5190b..a9e18e0 100644 --- a/llvm/lib/Analysis/TargetTransformInfo.cpp +++ b/llvm/lib/Analysis/TargetTransformInfo.cpp @@ -377,8 +377,6 @@ TargetIRAnalysis::Result TargetIRAnalysis::run(const Function &F) { return TTICallback(F); } -template class AnalysisBase; - 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 7903799..c47091e 100644 --- a/llvm/lib/IR/Dominators.cpp +++ b/llvm/lib/IR/Dominators.cpp @@ -308,8 +308,6 @@ DominatorTree DominatorTreeAnalysis::run(Function &F) { return DT; } -template class AnalysisBase; - 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 eb5ba43..9d5b4cb 100644 --- a/llvm/lib/IR/PassManager.cpp +++ b/llvm/lib/IR/PassManager.cpp @@ -20,6 +20,5 @@ template class PassManager; template class AnalysisManager; template class AnalysisManager; template class InnerAnalysisManagerProxy; -template class AnalysisBase; template class OuterAnalysisManagerProxy; }