mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
[LLVM-C] Allow Specifying Signedness in Int Cast
Summary: Fix an old outstanding problem with the int cast builder binding always assuming the cast is signed by introducing a new LLVMBuildIntCast2 operation and deprecating the old prototype. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D56280 llvm-svn: 350607
This commit is contained in:
parent
ab3dbc4187
commit
ec267c7f86
@ -3633,11 +3633,16 @@ LLVMValueRef LLVMBuildCast(LLVMBuilderRef B, LLVMOpcode Op, LLVMValueRef Val,
|
|||||||
LLVMTypeRef DestTy, const char *Name);
|
LLVMTypeRef DestTy, const char *Name);
|
||||||
LLVMValueRef LLVMBuildPointerCast(LLVMBuilderRef, LLVMValueRef Val,
|
LLVMValueRef LLVMBuildPointerCast(LLVMBuilderRef, LLVMValueRef Val,
|
||||||
LLVMTypeRef DestTy, const char *Name);
|
LLVMTypeRef DestTy, const char *Name);
|
||||||
LLVMValueRef LLVMBuildIntCast(LLVMBuilderRef, LLVMValueRef Val, /*Signed cast!*/
|
LLVMValueRef LLVMBuildIntCast2(LLVMBuilderRef, LLVMValueRef Val,
|
||||||
LLVMTypeRef DestTy, const char *Name);
|
LLVMTypeRef DestTy, LLVMBool IsSigned,
|
||||||
|
const char *Name, size_t NameLen);
|
||||||
LLVMValueRef LLVMBuildFPCast(LLVMBuilderRef, LLVMValueRef Val,
|
LLVMValueRef LLVMBuildFPCast(LLVMBuilderRef, LLVMValueRef Val,
|
||||||
LLVMTypeRef DestTy, const char *Name);
|
LLVMTypeRef DestTy, const char *Name);
|
||||||
|
|
||||||
|
/** Deprecated: This cast is always signed. Use LLVMBuildIntCast2 instead. */
|
||||||
|
LLVMValueRef LLVMBuildIntCast(LLVMBuilderRef, LLVMValueRef Val, /*Signed cast!*/
|
||||||
|
LLVMTypeRef DestTy, const char *Name);
|
||||||
|
|
||||||
/* Comparisons */
|
/* Comparisons */
|
||||||
LLVMValueRef LLVMBuildICmp(LLVMBuilderRef, LLVMIntPredicate Op,
|
LLVMValueRef LLVMBuildICmp(LLVMBuilderRef, LLVMIntPredicate Op,
|
||||||
LLVMValueRef LHS, LLVMValueRef RHS,
|
LLVMValueRef LHS, LLVMValueRef RHS,
|
||||||
|
@ -3534,6 +3534,13 @@ LLVMValueRef LLVMBuildPointerCast(LLVMBuilderRef B, LLVMValueRef Val,
|
|||||||
return wrap(unwrap(B)->CreatePointerCast(unwrap(Val), unwrap(DestTy), Name));
|
return wrap(unwrap(B)->CreatePointerCast(unwrap(Val), unwrap(DestTy), Name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LLVMValueRef LLVMBuildIntCast2(LLVMBuilderRef B, LLVMValueRef Val,
|
||||||
|
LLVMTypeRef DestTy, LLVMBool IsSigned,
|
||||||
|
const char *Name, size_t NameLen) {
|
||||||
|
return wrap(unwrap(B)->CreateIntCast(unwrap(Val), unwrap(DestTy),
|
||||||
|
IsSigned, StringRef(Name, NameLen)));
|
||||||
|
}
|
||||||
|
|
||||||
LLVMValueRef LLVMBuildIntCast(LLVMBuilderRef B, LLVMValueRef Val,
|
LLVMValueRef LLVMBuildIntCast(LLVMBuilderRef B, LLVMValueRef Val,
|
||||||
LLVMTypeRef DestTy, const char *Name) {
|
LLVMTypeRef DestTy, const char *Name) {
|
||||||
return wrap(unwrap(B)->CreateIntCast(unwrap(Val), unwrap(DestTy),
|
return wrap(unwrap(B)->CreateIntCast(unwrap(Val), unwrap(DestTy),
|
||||||
|
Loading…
Reference in New Issue
Block a user