LLVM: include/llvm/Transforms/Utils/ExtraPassManager.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef LLVM_TRANSFORMS_UTILS_EXTRAPASSMANAGER_H
16#define LLVM_TRANSFORMS_UTILS_EXTRAPASSMANAGER_H
17
20
21namespace llvm {
22
23
24
25
29 FunctionAnalysisManager::Invalidator &) {
30
31
34 }
35
37 LoopAnalysisManager::Invalidator &) {
38
39
42 }
43 };
44
46
51};
52
53
54
55
56
57template
59 : public PassInfoMixin<ExtraFunctionPassManager> {
61
62public:
63 template void addPass(PassT &&Pass) {
64 InnerFPM.addPass(std::move(Pass));
65 }
66
70 PA.intersect(InnerFPM.run(F, AM));
71 PA.abandon();
72 return PA;
73 }
74
76};
77
78
79
80
81template
83 : public PassInfoMixin<ExtraLoopPassManager> {
85
86public:
87 template void addPass(PassT &&Pass) {
88 InnerLPM.addPass(std::move(Pass));
89 }
90
95 PA.intersect(InnerLPM.run(L, AM, AR, U));
96 PA.abandon();
97 return PA;
98 }
99
101};
102
103}
104
105#endif
This header defines various interfaces for pass management in LLVM.
This header provides classes for managing a pipeline of passes over loops in LLVM IR.
FunctionAnalysisManager FAM
PassT::Result * getCachedResult(IRUnitT &IR) const
Get the cached result of an analysis pass for a given IR unit.
This class provides an interface for updating the loop pass manager based on mutations to the loop ne...
Represents a single loop in the control flow graph.
Pass interface - Implemented by all 'passes'.
bool preservedWhenStateless()
Return true if the checker's analysis was not abandoned, i.e.
A set of analyses that are preserved following a run of a transformation pass.
static PreservedAnalyses all()
Construct a special preserved set that preserves all passes.
PreservedAnalysisChecker getChecker() const
Build a checker for this PreservedAnalyses and the specified analysis type.
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< Loop, LoopStandardAnalysisResults & > LoopAnalysisManager
The loop analysis manager.
PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > LoopPassManager
The Loop pass manager.
PassManager< Function > FunctionPassManager
Convenience typedef for a pass manager over functions.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
The adaptor from a function pass to a loop pass computes these analyses and makes them available to t...
A CRTP mix-in to automatically provide informational APIs needed for passes.