LLVM 17.0.0git
Functions
LowerMemIntrinsics.cpp File Reference
#include "llvm/Transforms/Utils/LowerMemIntrinsics.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include <optional>
Include dependency graph for LowerMemIntrinsics.cpp:

Go to the source code of this file.

Functions

static void createMemMoveLoop (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, Value *CopyLen, Align SrcAlign, Align DstAlign, bool SrcIsVolatile, bool DstIsVolatile)
 
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)
 

Function Documentation

◆ canOverlap()

template<typename T >
static bool canOverlap ( MemTransferBase< T > *  Memcpy,
ScalarEvolution SE 
)
static

◆ createMemMoveLoop()

static void createMemMoveLoop ( Instruction InsertBefore,
Value SrcAddr,
Value DstAddr,
Value CopyLen,
Align  SrcAlign,
Align  DstAlign,
bool  SrcIsVolatile,
bool  DstIsVolatile 
)
static

◆ createMemSetLoop()

static void createMemSetLoop ( Instruction InsertBefore,
Value DstAddr,
Value CopyLen,
Value SetValue,
Align  DstAlign,
bool  IsVolatile 
)
static