#include <cstdint>
#include <optional>
Go to the source code of this file.
|
namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations.
|
|
|
void | llvm::createMemCpyLoopUnknownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, Value *CopyLen, Align SrcAlign, Align DestAlign, bool SrcIsVolatile, bool DstIsVolatile, bool CanOverlap, const TargetTransformInfo &TTI, std::optional< unsigned > AtomicSize=std::nullopt) |
| Emit a loop implementing the semantics of llvm.memcpy where the size is not a compile-time constant.
|
|
void | llvm::createMemCpyLoopKnownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, ConstantInt *CopyLen, Align SrcAlign, Align DestAlign, bool SrcIsVolatile, bool DstIsVolatile, bool CanOverlap, const TargetTransformInfo &TTI, std::optional< uint32_t > AtomicCpySize=std::nullopt) |
| Emit a loop implementing the semantics of an llvm.memcpy whose size is a compile time constant.
|
|
void | llvm::expandMemCpyAsLoop (MemCpyInst *MemCpy, const TargetTransformInfo &TTI, ScalarEvolution *SE=nullptr) |
| Expand MemCpy as a loop. MemCpy is not deleted.
|
|
bool | llvm::expandMemMoveAsLoop (MemMoveInst *MemMove, const TargetTransformInfo &TTI) |
| Expand MemMove as a loop.
|
|
void | llvm::expandMemSetAsLoop (MemSetInst *MemSet) |
| Expand MemSet as a loop. MemSet is not deleted.
|
|
void | llvm::expandMemSetPatternAsLoop (MemSetPatternInst *MemSet) |
| Expand MemSetPattern as a loop. MemSet is not deleted.
|
|
void | llvm::expandAtomicMemCpyAsLoop (AtomicMemCpyInst *AtomicMemCpy, const TargetTransformInfo &TTI, ScalarEvolution *SE) |
| Expand AtomicMemCpy as a loop. AtomicMemCpy is not deleted.
|
|