15 #ifndef LLVM_TRANSFORMS_SCALAR_MEMCPYOPTIMIZER_H 16 #define LLVM_TRANSFORMS_SCALAR_MEMCPYOPTIMIZER_H 27 class AssumptionCache;
34 class MemoryDependenceResults;
37 class TargetLibraryInfo;
43 std::function<AliasAnalysis &()> LookupAliasAnalysis;
44 std::function<AssumptionCache &()> LookupAssumptionCache;
45 std::function<DominatorTree &()> LookupDomTree;
66 uint64_t cpyLen,
unsigned cpyAlign,
CallInst *
C);
70 bool processByValArgument(
CallSite CS,
unsigned ArgNo);
79 #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 class represents lattice values for constants.
This class represents a function call, abstracting a target machine's calling convention.
A cache of @llvm.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_)
Provides information about what library functions are available for the current target.
This class wraps the llvm.memcpy intrinsic.
InstListType::iterator iterator
Instruction iterators...
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.