[llvm] r293017 - Rewind instantiations of OuterAnalysisManagerProxy in r289317, r291651, and r291662.

Chandler Carruth via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 29 15:05:27 PST 2017


This change is not correct at all. Please revert as it causes other
platforms to no longer have the necessary extern template declaration. What
failure are you trying to address?

On Sun, Jan 29, 2017, 14:03 NAKAMURA Takumi <geek4civic at gmail.com> wrote:

> Hans, could you pull this into 4.0, please?
>
> 2017年1月25日(水) 13:37 NAKAMURA Takumi via llvm-commits <
> llvm-commits at lists.llvm.org>:
>
> Author: chapuni
> Date: Tue Jan 24 22:26:29 2017
> New Revision: 293017
>
> URL: http://llvm.org/viewvc/llvm-project?rev=293017&view=rev
> Log:
> Rewind instantiations of OuterAnalysisManagerProxy in r289317, r291651,
> and r291662.
>
> I found root class should be instantiated for variadic tempate to
> instantiate static member explicitly.
>
> This will fix failures in mingw DLL build.
>
> Modified:
>     llvm/trunk/include/llvm/Analysis/CGSCCPassManager.h
>     llvm/trunk/include/llvm/Analysis/LoopAnalysisManager.h
>     llvm/trunk/lib/Analysis/CGSCCPassManager.cpp
>     llvm/trunk/lib/Analysis/LoopAnalysisManager.cpp
>
> Modified: llvm/trunk/include/llvm/Analysis/CGSCCPassManager.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/CGSCCPassManager.h?rev=293017&r1=293016&r2=293017&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/Analysis/CGSCCPassManager.h (original)
> +++ llvm/trunk/include/llvm/Analysis/CGSCCPassManager.h Tue Jan 24
> 22:26:29 2017
> @@ -191,8 +191,8 @@ CGSCCAnalysisManagerModuleProxy::run(Mod
>  // template.
>  extern template class InnerAnalysisManagerProxy<CGSCCAnalysisManager,
> Module>;
>
> -extern template class OuterAnalysisManagerProxy<
> -    ModuleAnalysisManager, LazyCallGraph::SCC, LazyCallGraph &>;
> +extern template class OuterAnalysisManagerProxy<ModuleAnalysisManager,
> +                                                LazyCallGraph::SCC>;
>  /// A proxy from a \c ModuleAnalysisManager to an \c SCC.
>  typedef OuterAnalysisManagerProxy<ModuleAnalysisManager,
> LazyCallGraph::SCC,
>                                    LazyCallGraph &>
>
> Modified: llvm/trunk/include/llvm/Analysis/LoopAnalysisManager.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/LoopAnalysisManager.h?rev=293017&r1=293016&r2=293017&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/Analysis/LoopAnalysisManager.h (original)
> +++ llvm/trunk/include/llvm/Analysis/LoopAnalysisManager.h Tue Jan 24
> 22:26:29 2017
> @@ -141,8 +141,7 @@ LoopAnalysisManagerFunctionProxy::run(Fu
>  // template.
>  extern template class InnerAnalysisManagerProxy<LoopAnalysisManager,
> Function>;
>
> -extern template class OuterAnalysisManagerProxy<FunctionAnalysisManager,
> Loop,
> -
> LoopStandardAnalysisResults &>;
> +extern template class OuterAnalysisManagerProxy<FunctionAnalysisManager,
> Loop>;
>  /// A proxy from a \c FunctionAnalysisManager to a \c Loop.
>  typedef OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop,
>                                    LoopStandardAnalysisResults &>
>
> Modified: llvm/trunk/lib/Analysis/CGSCCPassManager.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/CGSCCPassManager.cpp?rev=293017&r1=293016&r2=293017&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Analysis/CGSCCPassManager.cpp (original)
> +++ llvm/trunk/lib/Analysis/CGSCCPassManager.cpp Tue Jan 24 22:26:29 2017
> @@ -24,7 +24,7 @@ template class PassManager<LazyCallGraph
>                             LazyCallGraph &, CGSCCUpdateResult &>;
>  template class InnerAnalysisManagerProxy<CGSCCAnalysisManager, Module>;
>  template class OuterAnalysisManagerProxy<ModuleAnalysisManager,
> -                                         LazyCallGraph::SCC,
> LazyCallGraph &>;
> +                                         LazyCallGraph::SCC>;
>  template class OuterAnalysisManagerProxy<CGSCCAnalysisManager, Function>;
>
>  /// Explicitly specialize the pass manager run method to handle call graph
>
> Modified: llvm/trunk/lib/Analysis/LoopAnalysisManager.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/LoopAnalysisManager.cpp?rev=293017&r1=293016&r2=293017&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Analysis/LoopAnalysisManager.cpp (original)
> +++ llvm/trunk/lib/Analysis/LoopAnalysisManager.cpp Tue Jan 24 22:26:29
> 2017
> @@ -23,8 +23,7 @@ namespace llvm {
>  template class AllAnalysesOn<Loop>;
>  template class AnalysisManager<Loop, LoopStandardAnalysisResults &>;
>  template class InnerAnalysisManagerProxy<LoopAnalysisManager, Function>;
> -template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop,
> -                                         LoopStandardAnalysisResults &>;
> +template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop>;
>
>  bool LoopAnalysisManagerFunctionProxy::Result::invalidate(
>      Function &F, const PreservedAnalyses &PA,
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170129/737a1670/attachment.html>


More information about the llvm-commits mailing list