LLVM 20.0.0git
Namespaces | Functions
LowerMemIntrinsics.h File Reference
#include <cstdint>
#include <optional>

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Functions

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::expandAtomicMemCpyAsLoop (AtomicMemCpyInst *AtomicMemCpy, const TargetTransformInfo &TTI, ScalarEvolution *SE)
 Expand AtomicMemCpy as a loop. AtomicMemCpy is not deleted.