Hello ! This may be a trivial question, but I cannot get fields from a Value type. If my Value is i32 1, how can I store 1 in a different structure (an integer) ? For the type, I have getType(). For the value, I see no method in Value.h. I tried to cast to ConstantExpr and then to get operands, or cast to ConstantDataArray and then use getAsString(), but is not working. How should I get the value? Thank you ! -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130625/a8f88bfb/attachment.html>
Hi Alexandru, if you have a Value pointer named v, you could use the method v->getValue(). getLimitedValue(), which returns uint64_t, that can be casted as int. Hope I could help, -- Cristianno Martins PhD Student of Computer Science University of Campinas cmartins at ic.unicamp.br <cristiannomartins at hotmail.com> On Tue, Jun 25, 2013 at 4:05 AM, Alexandru Ionut Diaconescu < cyrusthevirus001x at yahoo.com> wrote:> Hello ! > > This may be a trivial question, but I cannot get fields from a Value type. > > If my Value is i32 1, how can I store 1 in a different structure (an > integer) ? For the type, I have getType(). For the value, I see no method > in Value.h. > > I tried to cast to ConstantExpr and then to get operands, or cast to > ConstantDataArray and then use getAsString(), but is not working. How > should I get the value? > > Thank you ! > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130625/b509aa54/attachment.html>
Hi Cristianno, Thank you, it works :) with an extra cast: Value *v ...... ConstantInt* RR = (ConstantInt *)v; uint64_t VV = (RR->getValue()).getLimitedValue(); errs()<<"\nRR "<<VV<<"\n"; ________________________________ From: Cristianno Martins <cristiannomartins at gmail.com> To: Alexandru Ionut Diaconescu <cyrusthevirus001x at yahoo.com> Cc: "llvmdev at cs.uiuc.edu" <llvmdev at cs.uiuc.edu> Sent: Tuesday, June 25, 2013 12:27 PM Subject: Re: [LLVMdev] get value Hi Alexandru, if you have a Value pointer named v, you could use the method v->getValue().getLimitedValue(), which returns uint64_t, that can be casted as int. Hope I could help, -- Cristianno Martins PhD Student of Computer Science University of Campinas cmartins at ic.unicamp.br On Tue, Jun 25, 2013 at 4:05 AM, Alexandru Ionut Diaconescu <cyrusthevirus001x at yahoo.com> wrote: Hello !> > >This may be a trivial question, but I cannot get fields from a Value type. > > >If my Value is i32 1, how can I store 1 in a different structure (an integer) ? For the type, I have getType(). For the value, I see no method in Value.h. > > > >I tried to cast to ConstantExpr and then to get operands, or cast to ConstantDataArray and then use getAsString(), but is not working. How should I get the value? > > >Thank you ! > > > >_______________________________________________ >LLVM Developers mailing list >LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130625/de4e0b94/attachment.html>