[LLVMdev] How to recognize pointer variable & ordinary variable
Duncan Sands
baldrick at free.fr
Wed Jul 21 13:12:02 PDT 2010
Hi Soumya_Prasad_Ukil,
> Your last statement is correct. But still my stand does not change. I
> want to differentiate ordinary local variable & pointer variables.
> Let's have a program,
> int a,b,c,*ptr;
This is not LLVM IR.
> I want to extract only the local variables. That's what my question was.
> I think it is clear now. cast<PointerType>(A->getType()
>
> )->getElementType() is not working.
I should have said:
isa<PointerType>(cast<PointerType>(A->getType())->getElementType())
(forgot the pointer type test)
I am also getting error with
> A->getAllocatedType().
If you look closely you will see I said you can do this with an alloca
instruction. It will not compile if you have something else. If you only\
have a Value*, you can do this:
isa<PointerType>(cast<AllocaInst>(V)->getAllocatedType())
Ciao,
Duncan.
>
>
>
>
> On 22 July 2010 01:01, Duncan Sands <baldrick at free.fr
> <mailto:baldrick at free.fr>> wrote:
>
> Hi Soumya_Prasad_Ukil,
>
> > How to recognize pointer variable & ordinary variable? I have
> tried with
> > "isa<PointerType>(V->getType())", but failed.
>
> I'm not sure what you are asking, but if you are asking whether an
> alloca instruction A represents local memory of pointer type, you
> can use A->getAllocatedType(). You can also use
> cast<PointerType>(A->getType())->getElementType(). The reason that
> an alloca instruction always has pointer type is that the instruction
> represents a pointer to the allocated memory.
>
> Ciao,
>
> Duncan.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>
>
> --
> regards,
> soumya prasad ukil
More information about the llvm-dev
mailing list