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 !