Go to the documentation of this file.
29 #ifndef LLVM_ANALYSIS_LOOPANALYSISMANAGER_H
30 #define LLVM_ANALYSIS_LOOPANALYSISMANAGER_H
37 class AssumptionCache;
43 class ScalarEvolution;
44 class TargetLibraryInfo;
45 class TargetTransformInfo;
89 : InnerAM(&InnerAM), LI(&LI) {}
95 Arg.InnerAM =
nullptr;
98 InnerAM =
RHS.InnerAM;
100 MSSAUsed =
RHS.MSSAUsed;
104 RHS.InnerAM =
nullptr;
138 bool MSSAUsed =
false;
162 #endif // LLVM_ANALYSIS_LOOPANALYSISMANAGER_H
A set of analyses that are preserved following a run of a transformation pass.
An analysis over an "inner" IR unit that provides access to an analysis manager over a "outer" IR uni...
This is an optimization pass for GlobalISel generic memory operations.
Represents a single loop in the control flow graph.
Result(LoopAnalysisManager &InnerAM, LoopInfo &LI)
This templated class represents "all analyses that operate over <a particular IR unit>" (e....
The main scalar evolution driver.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
The adaptor from a function pass to a loop pass computes these analyses and makes them available to t...
amdgpu Simplify well known AMD library false FunctionCallee Value * Arg
BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...
Analysis providing branch probability information.
BranchProbabilityInfo * BPI
LoopAnalysisManager & getManager()
Accessor for the analysis manager.
API to communicate dependencies between analyses during invalidation.
PreservedAnalyses getLoopPassPreservedAnalyses()
Returns the minimum set of Analyses that all loop passes must preserve.
Encapsulates MemorySSA, including all data associated with memory accesses.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
OuterAnalysisManagerProxy< FunctionAnalysisManager, Loop, LoopStandardAnalysisResults & > FunctionAnalysisManagerLoopProxy
A proxy from a FunctionAnalysisManager to a Loop.
Result & operator=(Result &&RHS)
A cache of @llvm.assume calls within a function.
InnerAnalysisManagerProxy< LoopAnalysisManager, Function > LoopAnalysisManagerFunctionProxy
A proxy from a LoopAnalysisManager to a Function.
TargetTransformInfo & TTI
void markMSSAUsed()
Mark MemorySSA as used so we can invalidate self if MSSA is invalidated.
Provides information about what library functions are available for the current target.
A specialized result for the LoopAnalysisManagerFunctionProxy which retains a LoopInfo reference.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
AnalysisManager< Loop, LoopStandardAnalysisResults & > LoopAnalysisManager
The loop analysis manager.
A container for analyses that lazily runs them and caches their results.
An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR un...
Result run(IRUnitT &IR, AnalysisManager< IRUnitT, ExtraArgTs... > &AM, ExtraArgTs...)
Run the analysis pass and create our proxy result object.
early cse Early CSE w MemorySSA