mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
0bb4ed7ba7
work in the face of the limitations of DLLs and templated static variables. This requires passes that use the AnalysisBase mixin provide a static variable themselves. So as to keep their APIs clean, I've made these private and befriended the CRTP base class (which is the common practice). I've added documentation to AnalysisBase for why this is necessary and at what point we can go back to the much simpler system. This is clearly a better pattern than the extern template as it caught *numerous* places where the template magic hadn't been applied and things were "just working" but would eventually have broken mysteriously. llvm-svn: 263216
21 lines
704 B
C++
21 lines
704 B
C++
//===- LoopPassManager.cpp - Loop pass management -------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/Analysis/LoopPassManager.h"
|
|
|
|
using namespace llvm;
|
|
|
|
// Explicit instantiations for core typedef'ed templates.
|
|
namespace llvm {
|
|
template class PassManager<Loop>;
|
|
template class AnalysisManager<Loop>;
|
|
template class InnerAnalysisManagerProxy<LoopAnalysisManager, Function>;
|
|
template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop>;
|
|
}
|