forked from OSchip/llvm-project
[LLVM-C] Add Builder Bindings to Common Memory Intrinsics
Summary: Add IRBuilder bindings for memmove, memcpy, and memset. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: harlanhaskins, llvm-commits Differential Revision: https://reviews.llvm.org/D53555 llvm-svn: 345508
This commit is contained in:
parent
669dbde7a5
commit
98640f8456
|
@ -3473,6 +3473,35 @@ LLVMValueRef LLVMBuildNot(LLVMBuilderRef, LLVMValueRef V, const char *Name);
|
|||
LLVMValueRef LLVMBuildMalloc(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name);
|
||||
LLVMValueRef LLVMBuildArrayMalloc(LLVMBuilderRef, LLVMTypeRef Ty,
|
||||
LLVMValueRef Val, const char *Name);
|
||||
|
||||
/**
|
||||
* Creates and inserts a memset to the specified pointer and the
|
||||
* specified value.
|
||||
*
|
||||
* @see llvm::IRRBuilder::CreateMemSet()
|
||||
*/
|
||||
LLVMValueRef LLVMBuildMemSet(LLVMBuilderRef B, LLVMValueRef Ptr,
|
||||
LLVMValueRef Val, LLVMValueRef Len,
|
||||
unsigned Align);
|
||||
/**
|
||||
* Creates and inserts a memcpy between the specified pointers.
|
||||
*
|
||||
* @see llvm::IRRBuilder::CreateMemCpy()
|
||||
*/
|
||||
LLVMValueRef LLVMBuildMemCpy(LLVMBuilderRef B,
|
||||
LLVMValueRef Dst, unsigned DstAlign,
|
||||
LLVMValueRef Src, unsigned SrcAlign,
|
||||
LLVMValueRef Size);
|
||||
/**
|
||||
* Creates and inserts a memmove between the specified pointers.
|
||||
*
|
||||
* @see llvm::IRRBuilder::CreateMemMove()
|
||||
*/
|
||||
LLVMValueRef LLVMBuildMemMove(LLVMBuilderRef B,
|
||||
LLVMValueRef Dst, unsigned DstAlign,
|
||||
LLVMValueRef Src, unsigned SrcAlign,
|
||||
LLVMValueRef Size);
|
||||
|
||||
LLVMValueRef LLVMBuildAlloca(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name);
|
||||
LLVMValueRef LLVMBuildArrayAlloca(LLVMBuilderRef, LLVMTypeRef Ty,
|
||||
LLVMValueRef Val, const char *Name);
|
||||
|
|
|
@ -3234,6 +3234,30 @@ LLVMValueRef LLVMBuildArrayMalloc(LLVMBuilderRef B, LLVMTypeRef Ty,
|
|||
return wrap(unwrap(B)->Insert(Malloc, Twine(Name)));
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMBuildMemSet(LLVMBuilderRef B, LLVMValueRef Ptr,
|
||||
LLVMValueRef Val, LLVMValueRef Len,
|
||||
unsigned Align) {
|
||||
return wrap(unwrap(B)->CreateMemSet(unwrap(Ptr), unwrap(Val), unwrap(Len), Align));
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMBuildMemCpy(LLVMBuilderRef B,
|
||||
LLVMValueRef Dst, unsigned DstAlign,
|
||||
LLVMValueRef Src, unsigned SrcAlign,
|
||||
LLVMValueRef Size) {
|
||||
return wrap(unwrap(B)->CreateMemCpy(unwrap(Dst), DstAlign,
|
||||
unwrap(Src), SrcAlign,
|
||||
unwrap(Size)));
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMBuildMemMove(LLVMBuilderRef B,
|
||||
LLVMValueRef Dst, unsigned DstAlign,
|
||||
LLVMValueRef Src, unsigned SrcAlign,
|
||||
LLVMValueRef Size) {
|
||||
return wrap(unwrap(B)->CreateMemMove(unwrap(Dst), DstAlign,
|
||||
unwrap(Src), SrcAlign,
|
||||
unwrap(Size)));
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMBuildAlloca(LLVMBuilderRef B, LLVMTypeRef Ty,
|
||||
const char *Name) {
|
||||
return wrap(unwrap(B)->CreateAlloca(unwrap(Ty), nullptr, Name));
|
||||
|
|
Loading…
Reference in New Issue