[LLVMdev] Value* to Instruction*/LoadInst* casting

Alexandru Ionut Diaconescu alexandruionutdiaconescu at gmail.com
Mon Jan 28 02:58:25 PST 2013


Thank you Stephan,

I solved it already. I copy paste it wrongly. The problem was with an array
not well filled.

Thank you !

On Mon, Jan 28, 2013 at 11:53 AM, Stephan Falke <falke at iti.uka.de> wrote:

> Hi Alexandru,
>
> > The compilation error is : `error: ‘LD100’ was not declared in this
> scope.`
> >
> > On Mon, Jan 28, 2013 at 11:31 AM, Alexandru Ionut Diaconescu <
> > alexandruionutdiaconescu at gmail.com> wrote:
> >
> >> Hello everyone,
> >>
> >> Can you please tell me if it is possible in LLVM to cast a `Value*` to
> an
> >> `Instruction*/LoadInst*` if for example `isa<LoadInst>(MyValue)` is
> true?
> >> In my particular piece of code:
> >>
> >>     Value* V1 = icmpInstrArray[i]->getOperand(0);
> >>     Value* V2 = icmpInstrArray[i]->getOperand(1);
> >>     if (isa<LoadInst>(V1) || isa<LoadInst>(V2)){
> >>     ...
> >>     if(isa<LoadInst>(icmpInstrArray[i]->getOperand(0)))
> >>         LoadInst *LD100 =
> cast<LoadInst>(icmpInstrArray[i]->getOperand(0));
> >>             Value *C100 = LD100->getPointerOperand(); //HERE COMPILATION
> >> ERROR
> >> Further, I just need to make `C100->getName()` and I will get the loaded
> >> variable.
>
> Looks like you meant to write
>
> if (isa<LoadInst>(icmpInstrArray[i]->getOperand(0))) {
>   LoadInst *LD100 = cast<LoadInst>(icmpInstrArray[i]->getOperand(0));
>   Value *C100 = LD100->getPointerOperand(); //HERE COMPILATION ERROR
>   ...
> }
>
> (i.e., you were missing "{...}" after the "if").
>
> >> I don't think that I can use cast like that. Can you tell me a method to
> >> obtain the loaded variable from a Load instruction correspondent to my
> ICMP
> >> instructions? Or better how I can extract the Load instruction from
> >> `icmpInstrArray[i]->getOperand(0)`?
> >>
> >> Thank you a lot !
>
> Hope this helps,
> Stephan
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



-- 
Best regards,
Alexandru Ionut Diaconescu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130128/ec9ed847/attachment.html>


More information about the llvm-dev mailing list