Build cleanly with LLVM 2.3 or 2.3svn.
git-svn-id: http://llvm-py.googlecode.com/svn/trunk@15 8d1e9007-1d4e-0410-b67e-1979fd6579aa
This commit is contained in:
parent
0a20bf7084
commit
9cc8fdc0cd
16 changed files with 96 additions and 58 deletions
12
llvm/_core.c
12
llvm/_core.c
|
|
@ -286,8 +286,10 @@ _wrap_objobj2obj(LLVMConstXor, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
|||
|
||||
_wrap_intobjobj2obj(LLVMConstICmp, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
_wrap_intobjobj2obj(LLVMConstFCmp, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
/* after LLVM 2.3!
|
||||
_wrap_intobjobj2obj(LLVMConstVICmp, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
_wrap_intobjobj2obj(LLVMConstVFCmp, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
*/
|
||||
|
||||
_wrap_objobj2obj(LLVMConstShl, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
_wrap_objobj2obj(LLVMConstLShr, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
|
|
@ -522,8 +524,10 @@ _wrap_objobjobjstr2obj(LLVMBuildBitCast, LLVMBuilderRef, LLVMValueRef, LLVMTypeR
|
|||
|
||||
_wrap_objintobjobjstr2obj(LLVMBuildICmp, LLVMBuilderRef, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
_wrap_objintobjobjstr2obj(LLVMBuildFCmp, LLVMBuilderRef, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
/* after LLVM 2.3!
|
||||
_wrap_objintobjobjstr2obj(LLVMBuildVICmp, LLVMBuilderRef, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
_wrap_objintobjobjstr2obj(LLVMBuildVFCmp, LLVMBuilderRef, LLVMValueRef, LLVMValueRef, LLVMValueRef)
|
||||
*/
|
||||
|
||||
/* Miscellaneous instructions */
|
||||
|
||||
|
|
@ -835,8 +839,10 @@ static PyMethodDef core_methods[] = {
|
|||
_method( LLVMConstXor )
|
||||
_method( LLVMConstICmp )
|
||||
_method( LLVMConstFCmp )
|
||||
_method( LLVMConstVICmp )
|
||||
_method( LLVMConstVFCmp )
|
||||
/* after LLVM 2.3!
|
||||
_method( LLVMConstVICmp )
|
||||
_method( LLVMConstVFCmp )
|
||||
*/
|
||||
_method( LLVMConstShl )
|
||||
_method( LLVMConstLShr )
|
||||
_method( LLVMConstAShr )
|
||||
|
|
@ -1003,8 +1009,10 @@ static PyMethodDef core_methods[] = {
|
|||
/* Comparisons */
|
||||
_method( LLVMBuildICmp )
|
||||
_method( LLVMBuildFCmp )
|
||||
/* after LLVM 2.3!
|
||||
_method( LLVMBuildVICmp )
|
||||
_method( LLVMBuildVFCmp )
|
||||
*/
|
||||
|
||||
/* Miscellaneous instructions */
|
||||
_method( LLVMBuildGetResult )
|
||||
|
|
|
|||
34
llvm/core.py
34
llvm/core.py
|
|
@ -750,13 +750,14 @@ class Constant(Value):
|
|||
check_is_constant(rhs)
|
||||
return Constant(_core.LLVMConstFCmp(real_pred, self.ptr, rhs.ptr))
|
||||
|
||||
def vicmp(self, int_pred, rhs):
|
||||
check_is_constant(rhs)
|
||||
return Constant(_core.LLVMConstVICmp(int_pred, self.ptr, rhs.ptr))
|
||||
|
||||
def vfcmp(self, real_pred, rhs):
|
||||
check_is_constant(rhs)
|
||||
return Constant(_core.LLVMConstVFCmp(real_pred, self.ptr, rhs.ptr))
|
||||
# after LLVM 2.3!
|
||||
# def vicmp(self, int_pred, rhs):
|
||||
# check_is_constant(rhs)
|
||||
# return Constant(_core.LLVMConstVICmp(int_pred, self.ptr, rhs.ptr))
|
||||
#
|
||||
# def vfcmp(self, real_pred, rhs):
|
||||
# check_is_constant(rhs)
|
||||
# return Constant(_core.LLVMConstVFCmp(real_pred, self.ptr, rhs.ptr))
|
||||
|
||||
def shl(self, rhs):
|
||||
check_is_constant(rhs)
|
||||
|
|
@ -1365,15 +1366,16 @@ class Builder(object):
|
|||
check_is_value(rhs)
|
||||
return Value(_core.LLVMBuildFCmp(self.ptr, rpred, lhs.ptr, rhs.ptr, name))
|
||||
|
||||
def vicmp(self, ipred, lhs, rhs, name=""):
|
||||
check_is_value(lhs)
|
||||
check_is_value(rhs)
|
||||
return Value(_core.LLVMBuildVICmp(self.ptr, ipred, lhs.ptr, rhs.ptr, name))
|
||||
|
||||
def vfcmp(self, rpred, lhs, rhs, name=""):
|
||||
check_is_value(lhs)
|
||||
check_is_value(rhs)
|
||||
return Value(_core.LLVMBuildVFCmp(self.ptr, rpred, lhs.ptr, rhs.ptr, name))
|
||||
# after LLVM 2.3!
|
||||
# def vicmp(self, ipred, lhs, rhs, name=""):
|
||||
# check_is_value(lhs)
|
||||
# check_is_value(rhs)
|
||||
# return Value(_core.LLVMBuildVICmp(self.ptr, ipred, lhs.ptr, rhs.ptr, name))
|
||||
#
|
||||
# def vfcmp(self, rpred, lhs, rhs, name=""):
|
||||
# check_is_value(lhs)
|
||||
# check_is_value(rhs)
|
||||
# return Value(_core.LLVMBuildVFCmp(self.ptr, rpred, lhs.ptr, rhs.ptr, name))
|
||||
|
||||
# misc
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ char *LLVMDumpValueToString(LLVMValueRef Val) {
|
|||
return strdup(buf.str().c_str());
|
||||
}
|
||||
|
||||
#if 0 /* after LLVM 2.3! */
|
||||
LLVMValueRef LLVMConstVICmp(LLVMIntPredicate Predicate,
|
||||
LLVMValueRef LHSConstant, LLVMValueRef RHSConstant) {
|
||||
return wrap(ConstantExpr::getVICmp(Predicate,
|
||||
|
|
@ -55,15 +56,6 @@ LLVMValueRef LLVMConstVFCmp(LLVMRealPredicate Predicate,
|
|||
unwrap<Constant>(RHSConstant)));
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMBuildRetMultiple(LLVMBuilderRef B, LLVMValueRef *Values,
|
||||
unsigned NumValues) {
|
||||
std::vector<Value *> Vs;
|
||||
for (LLVMValueRef *I = Values, *E = Values + NumValues; I != E; ++I)
|
||||
Vs.push_back(unwrap(*I));
|
||||
|
||||
return wrap(unwrap(B)->CreateRet(&Vs[0], NumValues));
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMBuildVICmp(LLVMBuilderRef B, LLVMIntPredicate Op,
|
||||
LLVMValueRef LHS, LLVMValueRef RHS,
|
||||
const char *Name) {
|
||||
|
|
@ -77,6 +69,16 @@ LLVMValueRef LLVMBuildVFCmp(LLVMBuilderRef B, LLVMRealPredicate Op,
|
|||
return wrap(unwrap(B)->CreateVFCmp(static_cast<FCmpInst::Predicate>(Op),
|
||||
unwrap(LHS), unwrap(RHS), Name));
|
||||
}
|
||||
#endif
|
||||
|
||||
LLVMValueRef LLVMBuildRetMultiple(LLVMBuilderRef B, LLVMValueRef *Values,
|
||||
unsigned NumValues) {
|
||||
std::vector<Value *> Vs;
|
||||
for (LLVMValueRef *I = Values, *E = Values + NumValues; I != E; ++I)
|
||||
Vs.push_back(unwrap(*I));
|
||||
|
||||
return wrap(unwrap(B)->CreateRet(&Vs[0], NumValues));
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMBuildGetResult(LLVMBuilderRef B, LLVMValueRef V,
|
||||
unsigned Index, const char *Name) {
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ char *LLVMDumpValueToString(LLVMValueRef Val);
|
|||
|
||||
/* missing constant expressions */
|
||||
|
||||
#if 0 /* after LLVM 2.3! */
|
||||
LLVMValueRef LLVMConstVICmp(LLVMIntPredicate Predicate,
|
||||
LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
||||
LLVMValueRef LLVMConstVFCmp(LLVMRealPredicate Predicate,
|
||||
|
|
@ -32,14 +33,16 @@ LLVMValueRef LLVMConstVFCmp(LLVMRealPredicate Predicate,
|
|||
|
||||
/* missing instructions */
|
||||
|
||||
LLVMValueRef LLVMBuildRetMultiple(LLVMBuilderRef, LLVMValueRef *Values,
|
||||
unsigned NumValues);
|
||||
LLVMValueRef LLVMBuildVICmp(LLVMBuilderRef, LLVMIntPredicate Op,
|
||||
LLVMValueRef LHS, LLVMValueRef RHS,
|
||||
const char *Name);
|
||||
LLVMValueRef LLVMBuildVFCmp(LLVMBuilderRef, LLVMRealPredicate Op,
|
||||
LLVMValueRef LHS, LLVMValueRef RHS,
|
||||
const char *Name);
|
||||
#endif
|
||||
|
||||
LLVMValueRef LLVMBuildRetMultiple(LLVMBuilderRef, LLVMValueRef *Values,
|
||||
unsigned NumValues);
|
||||
LLVMValueRef LLVMBuildGetResult(LLVMBuilderRef, LLVMValueRef V,
|
||||
unsigned Index, const char *Name);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue