Added vicmp, vfmp. Updated docs. Support FreeBSD.

git-svn-id: http://llvm-py.googlecode.com/svn/trunk@51 8d1e9007-1d4e-0410-b67e-1979fd6579aa
This commit is contained in:
mdevan.foobar 2008-11-22 16:46:32 +00:00
commit 3bbc5685a8
11 changed files with 747 additions and 729 deletions

View file

@ -99,6 +99,66 @@ char *LLVMDumpValueToString(LLVMValueRef value)
return do_print<LLVMValueRef, llvm::Value>(value);
}
LLVMValueRef LLVMConstVICmp(LLVMIntPredicate predicate, LLVMValueRef lhs,
LLVMValueRef rhs)
{
llvm::Constant *lhsp = llvm::unwrap<llvm::Constant>(lhs);
assert(lhsp);
llvm::Constant *rhsp = llvm::unwrap<llvm::Constant>(rhs);
assert(rhsp);
llvm::Constant *vicmp =
llvm::ConstantExpr::getVICmp(predicate, lhsp, rhsp);
return llvm::wrap(vicmp);
}
LLVMValueRef LLVMConstVFCmp(LLVMRealPredicate predicate, LLVMValueRef lhs,
LLVMValueRef rhs)
{
llvm::Constant *lhsp = llvm::unwrap<llvm::Constant>(lhs);
assert(lhsp);
llvm::Constant *rhsp = llvm::unwrap<llvm::Constant>(rhs);
assert(rhsp);
llvm::Constant *vfcmp =
llvm::ConstantExpr::getVFCmp(predicate, lhsp, rhsp);
return llvm::wrap(vfcmp);
}
LLVMValueRef LLVMBuildVICmp(LLVMBuilderRef builder, LLVMIntPredicate predicate,
LLVMValueRef lhs, LLVMValueRef rhs, const char *name)
{
llvm::IRBuilder<> *builderp = llvm::unwrap(builder);
assert(builderp);
llvm::Value *lhsp = llvm::unwrap(lhs);
assert(lhsp);
llvm::Value *rhsp = llvm::unwrap(rhs);
assert(rhsp);
llvm::Value *inst = builderp->CreateVICmp(
static_cast<llvm::CmpInst::Predicate>(predicate),
lhsp, rhsp, name);
return llvm::wrap(inst);
}
LLVMValueRef LLVMBuildVFCmp(LLVMBuilderRef builder, LLVMRealPredicate predicate,
LLVMValueRef lhs, LLVMValueRef rhs, const char *name)
{
llvm::IRBuilder<> *builderp = llvm::unwrap(builder);
assert(builderp);
llvm::Value *lhsp = llvm::unwrap(lhs);
assert(lhsp);
llvm::Value *rhsp = llvm::unwrap(rhs);
assert(rhsp);
llvm::Value *inst = builderp->CreateVFCmp(
static_cast<llvm::CmpInst::Predicate>(predicate),
lhsp, rhsp, name);
return llvm::wrap(inst);
}
unsigned LLVMModuleGetPointerSize(LLVMModuleRef module)
{
llvm::Module *modulep = llvm::unwrap(module);