[LLVMdev] How to retrieve IntToPtr from StoreInst?

John Criswell criswell at illinois.edu
Thu Apr 18 08:11:53 PDT 2013


On 4/18/13 9:56 AM, Jun Koi wrote:
> hi,
>
> i am writing a simple LLVM pass to analyze the Store instruction.
> my pass derives from InstVisitor class, and the method to handle Store 
> instruction is like this:
>
> void MyPass::visitStoreInst(StoreInst &I) {
> ...
> }
>
> It is pretty simple to handle Store. however, in on test i got an 
> instruction like below:
>
>   store i8 %tmp5, i8* inttoptr (i32 301959828 to i8*)

The inttoptr used here is a Constant Expression (llvm::ConstantExpr).  
You'll need to take the operand to the store, cast it to 
llvm::ConstantExpr, and then examine the opcode and operands of the 
constant expression.

The ConstantExpr class is documented at 
http://llvm.org/doxygen/classllvm_1_1ConstantExpr.html and is described 
in the LLVM Language Reference Manual.

-- John T.

>
> the second operand is "i8* inttoptr (i32 301959828 to i8*)", and i 
> have no idea how i can retrieve the address 301959828, given the 
> StoreInst argument of visitStoreInst.
>
> i am looking in the the code of LLVM, but still fail to see how to 
> extract this information.
>
> any suggestion is very appreciated. i am really struggling here now ...
>
> thanks so much.
> Jun
>
>
>
> _______________________________________________
> 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/20130418/5a864af0/attachment.html>


More information about the llvm-dev mailing list