Ammar Naqvi via llvm-dev
2016-Apr-24 06:27 UTC
[llvm-dev] Retrieving numeric value of instruction operand
Hello Everyone, I need some help in retrieving the numeric value of an instruction operand from LLVM IR. this is what the IR looks like for a simple add function that adds two i32 integers define i32 @summ(i32 %a, i32 %b) #0 { entry: %add = add nsw i32 %b, %a ret i32 %add } i would like to know the integer value of %a and %b. I've tried -i->getOpcodeName() which gives me the string add -i->getOperand(0) which gives me the string i32 %b -i->getOperand(0)->getName() which gives me the string a what method exists to get the actual integer value of the operands? for example we called summ(1,2), how to retrieve the values 1 and 2 held in the operands? Any help and guidance is greatly appreciated! :) Best, Ammar -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160423/6930d809/attachment.html>
John Criswell via llvm-dev
2016-Apr-24 14:18 UTC
[llvm-dev] Retrieving numeric value of instruction operand
Dear Ammar, It is not clear what you are asking. %a and %b in your code below are not constants; there is no way, at compile time, to determine what numeric values they will hold at run-time. Are you asking how to write an LLVM pass that will add code to summ() to print out its result? Regards, John Criswell On 4/24/16 2:27 AM, Ammar Naqvi via llvm-dev wrote:> Hello Everyone, > > I need some help in retrieving the numeric value of an instruction > operand from LLVM IR. > > this is what the IR looks like for a simple add function that adds two > i32 integers > > define i32 @summ(i32 %a, i32 %b) #0 { > entry: > %add = add nsw i32 %b, %a > ret i32 %add > } > > i would like to know the integer value of %a and %b. > > I've tried > > -i->getOpcodeName() which gives me the string add > > -i->getOperand(0) which gives me the string i32 %b > > -i->getOperand(0)->getName() which gives me the string a > > what method exists to get the actual integer value of the operands? > for example we called summ(1,2), how to retrieve the values 1 and 2 > held in the operands? > > Any help and guidance is greatly appreciated! :) > > Best, > Ammar > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-- John Criswell Assistant Professor Department of Computer Science, University of Rochester http://www.cs.rochester.edu/u/criswell -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160424/8ef714a7/attachment.html>
Ammar Naqvi via llvm-dev
2016-Apr-24 17:27 UTC
[llvm-dev] Retrieving numeric value of instruction operand
hey john, yes indeed, that's what I'm trying, retreiving the values of %a and %b in an LLVM pass, sorry about the confusion. On Apr 24, 2016 7:18 AM, "John Criswell" <jtcriswel at gmail.com> wrote:> Dear Ammar, > > It is not clear what you are asking. %a and %b in your code below are not > constants; there is no way, at compile time, to determine what numeric > values they will hold at run-time. > > Are you asking how to write an LLVM pass that will add code to summ() to > print out its result? > > Regards, > > John Criswell > > On 4/24/16 2:27 AM, Ammar Naqvi via llvm-dev wrote: > > Hello Everyone, > > I need some help in retrieving the numeric value of an instruction operand > from LLVM IR. > > this is what the IR looks like for a simple add function that adds two i32 > integers > > define i32 @summ(i32 %a, i32 %b) #0 { > entry: > %add = add nsw i32 %b, %a > ret i32 %add > } > > i would like to know the integer value of %a and %b. > > I've tried > > -i->getOpcodeName() which gives me the string add > > -i->getOperand(0) which gives me the string i32 %b > > -i->getOperand(0)->getName() which gives me the string a > > what method exists to get the actual integer value of the operands? > for example we called summ(1,2), how to retrieve the values 1 and 2 held > in the operands? > > Any help and guidance is greatly appreciated! :) > > Best, > Ammar > > > _______________________________________________ > LLVM Developers mailing listllvm-dev at lists.llvm.orghttp://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > > -- > John Criswell > Assistant Professor > Department of Computer Science, University of Rochesterhttp://www.cs.rochester.edu/u/criswell > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160424/62122b5e/attachment.html>