summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/PassManager.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2016-08-20 04:57:28 +0000
committerChandler Carruth <chandlerc@gmail.com>2016-08-20 04:57:28 +0000
commit8abdf75d6b3857ce4e1e49e7596a5a98fc2bc435 (patch)
tree893c6aca6ff0c260e598581e4e96c93e13a46d88 /llvm/lib/IR/PassManager.cpp
parent314364cbd2de2e2aadc1d5652cce0e832ea41239 (diff)
downloadbcm5719-llvm-8abdf75d6b3857ce4e1e49e7596a5a98fc2bc435.tar.gz
bcm5719-llvm-8abdf75d6b3857ce4e1e49e7596a5a98fc2bc435.zip
[PM] Introduce an abstraction for all the analyses over a particular IR
unit for use in the PreservedAnalyses set. This doesn't have any important functional change yet but it cleans things up and makes the analysis substantially more efficient by avoiding querying through the type erasure for every analysis. I also think it makes it much easier to reason about how analyses are preserved when walking across pass managers and across IR unit abstractions. Thanks to Sean and Mehdi both for the comments and suggestions. Differential Revision: https://reviews.llvm.org/D23691 llvm-svn: 279360
Diffstat (limited to 'llvm/lib/IR/PassManager.cpp')
-rw-r--r--llvm/lib/IR/PassManager.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/IR/PassManager.cpp b/llvm/lib/IR/PassManager.cpp
index 8563a4019a2..8fafea4c957 100644
--- a/llvm/lib/IR/PassManager.cpp
+++ b/llvm/lib/IR/PassManager.cpp
@@ -15,6 +15,8 @@ using namespace llvm;
// Explicit template instantiations for core template typedefs.
namespace llvm {
+template class AllAnalysesOn<Module>;
+template class AllAnalysesOn<Function>;
template class PassManager<Module>;
template class PassManager<Function>;
template class AnalysisManager<Module>;
OpenPOWER on IntegriCloud