29#ifndef LLVM_ANALYSIS_LOOPANALYSISMANAGER_H
30#define LLVM_ANALYSIS_LOOPANALYSISMANAGER_H
81 LoopAnalysisManagerFunctionProxy;
88template <>
class LoopAnalysisManagerFunctionProxy::Result {
91 : InnerAM(&InnerAM), LI(&LI) {}
93 : InnerAM(
std::
move(Arg.InnerAM)), LI(Arg.LI), MSSAUsed(Arg.MSSAUsed) {
97 Arg.InnerAM =
nullptr;
100 InnerAM =
RHS.InnerAM;
102 MSSAUsed =
RHS.MSSAUsed;
106 RHS.InnerAM =
nullptr;
135 FunctionAnalysisManager::Invalidator &Inv);
140 bool MSSAUsed =
false;
146LLVM_ABI LoopAnalysisManagerFunctionProxy::Result
#define LLVM_TEMPLATE_ABI
This header defines various interfaces for pass management in LLVM.
This templated class represents "all analyses that operate over <aparticular IR unit>" (e....
A container for analyses that lazily runs them and caches their results.
A cache of @llvm.assume calls within a function.
BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR un...
Result run(Function &IR, AnalysisManager< Function, ExtraArgTs... > &AM, ExtraArgTs...)
LLVM_ABI bool invalidate(Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv)
Handler for invalidation of the proxy for a particular function.
LoopAnalysisManager & getManager()
Accessor for the analysis manager.
Result & operator=(Result &&RHS)
void markMSSAUsed()
Mark MemorySSA as used so we can invalidate self if MSSA is invalidated.
Result(LoopAnalysisManager &InnerAM, LoopInfo &LI)
Represents a single loop in the control flow graph.
Encapsulates MemorySSA, including all data associated with memory accesses.
An analysis over an "inner" IR unit that provides access to an analysis manager over a "outer" IR uni...
A set of analyses that are preserved following a run of a transformation pass.
The main scalar evolution driver.
Provides information about what library functions are available for the current target.
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< Loop, LoopStandardAnalysisResults & > LoopAnalysisManager
The loop analysis manager.
OuterAnalysisManagerProxy< FunctionAnalysisManager, Loop, LoopStandardAnalysisResults & > FunctionAnalysisManagerLoopProxy
A proxy from a FunctionAnalysisManager to a Loop.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
LLVM_ABI PreservedAnalyses getLoopPassPreservedAnalyses()
Returns the minimum set of Analyses that all loop passes must preserve.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
Implement std::hash so that hash_code can be used in STL containers.
The adaptor from a function pass to a loop pass computes these analyses and makes them available to t...
TargetTransformInfo & TTI