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

Alexandru Ionut Diaconescu alexandruionutdiaconescu at gmail.com
Mon Jan 28 02:32:56 PST 2013


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.
>
> 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 !




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


More information about the llvm-dev mailing list