Go to the documentation of this file.
15 #ifndef LLVM_TRANSFORMS_SCALAR_SROA_H
16 #define LLVM_TRANSFORMS_SCALAR_SROA_H
27 class AssumptionCache;
39 class AllocaSliceRewriter;
94 std::vector<AllocaInst *> PromotableAllocas;
130 void clobberUse(
Use &U);
137 #endif // LLVM_TRANSFORMS_SCALAR_SROA_H
A set of analyses that are preserved following a run of a transformation pass.
This is an optimization pass for GlobalISel generic memory operations.
A CRTP mix-in to automatically provide informational APIs needed for passes.
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
A legacy pass for the legacy pass manager that wraps the SROA pass.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
Run the pass over the function.
Representation of the alloca slices.
Visitor to rewrite instructions using p particular slice of an alloca to use a new alloca.
(vector float) vec_cmpeq(*A, *B) C
static bool runImpl(const TargetLibraryInfo &TLI, Function &F)
This is an important class for using LLVM in a threaded context.
A cache of @llvm.assume calls within a function.
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library,...
An optimization pass providing Scalar Replacement of Aggregates.
A partition of the slices.
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
A container for analyses that lazily runs them and caches their results.
an instruction to allocate memory on the stack
A vector that has set insertion semantics.
A Use represents the edge between a Value definition and its users.