15#ifndef LLVM_TRANSFORMS_UTILS_EXTRAPASSMANAGER_H
16#define LLVM_TRANSFORMS_UTILS_EXTRAPASSMANAGER_H
29 FunctionAnalysisManager::Invalidator &) {
37 LoopAnalysisManager::Invalidator &) {
57template <
typename MarkerTy>
64 InnerFPM.addPass(std::move(
Pass));
70 PA.intersect(InnerFPM.run(
F, AM));
71 PA.abandon<MarkerTy>();
81template <
typename MarkerTy>
88 InnerLPM.addPass(std::move(
Pass));
95 PA.intersect(InnerLPM.run(L, AM, AR, U));
96 PA.abandon<MarkerTy>();
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.