diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2016-08-20 04:57:28 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2016-08-20 04:57:28 +0000 |
commit | 8abdf75d6b3857ce4e1e49e7596a5a98fc2bc435 (patch) | |
tree | 893c6aca6ff0c260e598581e4e96c93e13a46d88 /llvm/lib/IR/PassManager.cpp | |
parent | 314364cbd2de2e2aadc1d5652cce0e832ea41239 (diff) | |
download | bcm5719-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.cpp | 2 |
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>; |