16 #ifndef LLVM_TRANSFORMS_SCALAR_SROA_H 17 #define LLVM_TRANSFORMS_SCALAR_SROA_H 28 class AssumptionCache;
41 class AllocaSliceRewriter;
96 std::vector<AllocaInst *> PromotableAllocas;
132 void clobberUse(
Use &U);
139 #endif // LLVM_TRANSFORMS_SCALAR_SROA_H
static bool runImpl(Function &F, TargetLibraryInfo &TLI, DominatorTree &DT)
This is the entry point for all transforms.
This class represents lattice values for constants.
Representation of the alloca slices.
A cache of @llvm.assume calls within a function.
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
A Use represents the edge between a Value definition and its users.
A partition of the slices.
A CRTP mix-in to automatically provide informational APIs needed for passes.
A legacy pass for the legacy pass manager that wraps the SROA pass.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
A set of analyses that are preserved following a run of a transformation pass.
This is an important class for using LLVM in a threaded context.
Visitor to rewrite instructions using p particular slice of an alloca to use a new alloca...
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
A vector that has set insertion semantics.
An optimization pass providing Scalar Replacement of Aggregates.
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.
an instruction to allocate memory on the stack