[LLVMdev] llvm get Value* iterators
Alexandru Ionut Diaconescu
alexandruionutdiaconescu at gmail.com
Fri Jan 11 04:19:10 PST 2013
Hello everyone !
In my LLVM pass, there is `Intruction* I1`. All the used "I1"s are ICMP
instructions. *I1->getOperand(0) returns a `Value*` type. From
errs()<<"\n"<<*I1->getOperand(0)<<"\n";
//printed : %3 = load i32* %c, align 4
Printed as expected. But I want to use %c. Do you know how I can get %c ? I
need to use the value %c in some computations.
First, I tried
for (llvm::Value::use_iterator VI=(*I1->getOperand(0)).use_begin(),
VE=(*I1->getOperand(0)).use_end(); VI != VE ; ++VI)
{
errs()<<"\n "<<**VI<<" \n";
//printed : %cmp3 = icmp ne i32 %3, 0
}
But it is not getting Value* fields. Also, it is printing only one VI per
for, so VI cannot increment.
Second, it is a solution of taking the output of errs() in a string and
parse the string for %c ? If so, how I can do it? I have problems while
trying to declare `static raw_ostream S` in order to take somehow the
errs() output.
Thank you for any help !
--
Best regards,
Alexandru Ionut Diaconescu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130111/44fdccac/attachment.html>
More information about the llvm-dev
mailing list