16 #ifndef LLVM_TRANSFORMS_SCALAR_SROA_H
17 #define LLVM_TRANSFORMS_SCALAR_SROA_H
30 class AllocaSliceRewriter;
84 std::vector<AllocaInst *> PromotableAllocas;
102 SROA() : C(nullptr), DT(nullptr), AC(nullptr) {}
120 void clobberUse(
Use &U);
Representation of the alloca slices.
A cache of .assume calls within a function.
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
Run the pass over the function.
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.
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
Visitor to rewrite instructions using p particular slice of an alloca to use a new alloca...
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