Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
LowerMemIntrinsics.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "lower-mem-intrinsics"

Functions

static ValuegetRuntimeLoopRemainder (const DataLayout &DL, IRBuilderBase &B, Value *Len, Value *OpSize, unsigned OpSizeVal)
static ValuegetRuntimeLoopBytes (const DataLayout &DL, IRBuilderBase &B, Value *Len, Value *OpSize, unsigned OpSizeVal, Value *RTLoopRemainder=nullptr)
static std::pair< Value *, Value * > tryInsertCastToCommonAddrSpace (IRBuilderBase &B, Value *Addr1, Value *Addr2, const TargetTransformInfo &TTI)
static void createMemMoveLoopUnknownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, Value *CopyLen, Align SrcAlign, Align DstAlign, bool SrcIsVolatile, bool DstIsVolatile, const TargetTransformInfo &TTI)
static void createMemMoveLoopKnownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, ConstantInt *CopyLen, Align SrcAlign, Align DstAlign, bool SrcIsVolatile, bool DstIsVolatile, const TargetTransformInfo &TTI)
static void createMemSetLoop (Instruction *InsertBefore, Value *DstAddr, Value *CopyLen, Value *SetValue, Align DstAlign, bool IsVolatile)
template<typename T>
static bool canOverlap (MemTransferBase< T > *Memcpy, ScalarEvolution *SE)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "lower-mem-intrinsics"

Definition at line 20 of file LowerMemIntrinsics.cpp.

Function Documentation

◆ canOverlap()

◆ createMemMoveLoopKnownSize()

◆ createMemMoveLoopUnknownSize()

◆ createMemSetLoop()

◆ getRuntimeLoopBytes()

Value * getRuntimeLoopBytes ( const DataLayout & DL,
IRBuilderBase & B,
Value * Len,
Value * OpSize,
unsigned OpSizeVal,
Value * RTLoopRemainder = nullptr )
static

Definition at line 172 of file LowerMemIntrinsics.cpp.

References B(), DL, and getRuntimeLoopRemainder().

Referenced by createMemMoveLoopUnknownSize().

◆ getRuntimeLoopRemainder()

Value * getRuntimeLoopRemainder ( const DataLayout & DL,
IRBuilderBase & B,
Value * Len,
Value * OpSize,
unsigned OpSizeVal )
static

Definition at line 159 of file LowerMemIntrinsics.cpp.

References B(), DL, and llvm::isPowerOf2_32().

Referenced by createMemMoveLoopUnknownSize(), and getRuntimeLoopBytes().

◆ tryInsertCastToCommonAddrSpace()

std::pair< Value *, Value * > tryInsertCastToCommonAddrSpace ( IRBuilderBase & B,
Value * Addr1,
Value * Addr2,
const TargetTransformInfo & TTI )
static