15#ifndef LLVM_TRANSFORMS_UTILS_EXTRAPASSMANAGER_H
16#define LLVM_TRANSFORMS_UTILS_EXTRAPASSMANAGER_H
57template <
typename MarkerTy>
70 PA.intersect(InnerFPM.
run(
F, AM));
71 PA.abandon<MarkerTy>();
81template <
typename MarkerTy>
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
API to communicate dependencies between analyses during invalidation.
A container for analyses that lazily runs them and caches their results.
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.
LLVM_ATTRIBUTE_MINSIZE std::enable_if_t< is_detected< HasRunOnLoopT, PassT >::value > addPass(PassT &&Pass)
PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U)
Add either a loop pass or a loop-nest pass to the pass manager.
LLVM_ATTRIBUTE_MINSIZE std::enable_if_t<!std::is_same_v< PassT, PassManager > > addPass(PassT &&Pass)
PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs)
Run all of the passes in this manager over the given unit of IR.
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.
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.