Value.uses API

git-svn-id: http://llvm-py.googlecode.com/svn/trunk@70 8d1e9007-1d4e-0410-b67e-1979fd6579aa
This commit is contained in:
mdevan.foobar 2009-02-25 17:41:37 +00:00
commit d5328ef255
8 changed files with 152 additions and 17 deletions

View file

@ -299,6 +299,47 @@ unsigned LLVMValueGetID(LLVMValueRef value)
return valuep->getValueID();
}
unsigned LLVMValueGetNumUses(LLVMValueRef value)
{
llvm::Value *valuep = llvm::unwrap(value);
assert(valuep);
return valuep->getNumUses();
}
unsigned LLVMValueGetUses(LLVMValueRef value, LLVMValueRef **refs)
{
llvm::Value *valuep = llvm::unwrap(value);
assert(valuep);
unsigned n = valuep->getNumUses();
if (n == 0)
return 0;
assert(refs);
LLVMValueRef *out = (LLVMValueRef *)malloc(sizeof(LLVMValueRef) * n);
if (!out)
return 0;
*refs = out;
memset(out, 0, sizeof(LLVMValueRef) * n);
llvm::Value::use_iterator it = valuep->use_begin();
while (it != valuep->use_end()) {
*out++ = llvm::wrap(*it);
++it;
}
return n;
}
void LLVMDisposeValueRefArray(LLVMValueRef *refs)
{
assert(refs);
free(refs);
}
unsigned LLVMUserGetNumOperands(LLVMValueRef user)
{
llvm::User *userp = llvm::unwrap<llvm::User>(user);