38#ifndef LLVM_TRANSFORMS_UTILS_LOOPSIMPLIFY_H
39#define LLVM_TRANSFORMS_UTILS_LOOPSIMPLIFY_H
49class MemorySSAUpdater;
This header defines various interfaces for pass management in LLVM.
A container for analyses that lazily runs them and caches their results.
A cache of @llvm.assume calls within a function.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
This pass is responsible for loop canonicalization.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
Represents a single loop in the control flow graph.
A set of analyses that are preserved following a run of a transformation pass.
The main scalar evolution driver.
This is an optimization pass for GlobalISel generic memory operations.
bool simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, MemorySSAUpdater *MSSAU, bool PreserveLCSSA)
Simplify each loop in a loop nest recursively.
A CRTP mix-in to automatically provide informational APIs needed for passes.