15 #ifndef LLVM_TRANSFORMS_SCALAR_MEMCPYOPTIMIZER_H
16 #define LLVM_TRANSFORMS_SCALAR_MEMCPYOPTIMIZER_H
35 std::function<AliasAnalysis &()> LookupAliasAnalysis;
36 std::function<AssumptionCache &()> LookupAssumptionCache;
37 std::function<DominatorTree &()> LookupDomTree;
56 uint64_t cpyLen,
unsigned cpyAlign,
CallInst *
C);
60 bool processByValArgument(
CallSite CS,
unsigned ArgNo);
68 #endif // LLVM_TRANSFORMS_SCALAR_MEMCPYOPTIMIZER_H
Provides a lazy, caching interface for making common memory aliasing information queries, backed by LLVM's alias analysis passes.
This is the interface for a simple mod/ref and alias analysis over globals.
This class represents a function call, abstracting a target machine's calling convention.
A cache of .assume calls within a function.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
This class wraps the llvm.memset intrinsic.
This class wraps the llvm.memmove intrinsic.
A CRTP mix-in to automatically provide informational APIs needed for passes.
An instruction for storing to memory.
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.
bool runImpl(Function &F, MemoryDependenceResults *MD_, TargetLibraryInfo *TLI_, std::function< AliasAnalysis &()> LookupAliasAnalysis_, std::function< AssumptionCache &()> LookupAssumptionCache_, std::function< DominatorTree &()> LookupDomTree_)
Iterator for intrusive lists based on ilist_node.
Provides information about what library functions are available for the current target.
This class wraps the llvm.memcpy intrinsic.
static GCRegistry::Add< ShadowStackGC > C("shadow-stack","Very portable GC for uncooperative code generators")
LLVM Value Representation.
print Print MemDeps of function
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.