[LLVMdev] llvm get Value* iterators
Duncan Sands
baldrick at free.fr
Fri Jan 11 04:47:44 PST 2013
Hi,
On 11/01/13 13:19, Alexandru Ionut Diaconescu wrote:
> 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.
I1->getOperand(0)->getOperand(0)
Ciao, Duncan.
>
> 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
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
More information about the llvm-dev
mailing list