[LLVMdev] How to break/iterate over nested instructions.

Duncan Sands baldrick at free.fr
Sat Aug 27 14:53:38 PDT 2011


> Why to break?

Hi Manish,

> I wish to analyse all the operands of getelemetptr instructions.

why?  Also, these nested geps are *not* getelementptr instructions, they are
getelementptr constant expressions.  To be sure of finding them all you will
need to recursively visit all constants, examining their operands if they have
any.  But since they are computed at build time, not when the program runs
(they are constants), maybe they don't matter for you?

Ciao, Duncan.

  For which I
> iterate over the code and get the instruction of interest by
> getopcode == getelementptr. But the getelementptrs in this form as in my last
> mail are getting away from my pass. So i wish to break it. I have a work around
> if breaking is not possible, but I think it may be a common requirement by other
> passes too.
>
> Thanks!
> Manish
>
> On Sat, Aug 27, 2011 at 12:41 AM, Duncan Sands <baldrick at free.fr
> <mailto:baldrick at free.fr>> wrote:
>
>     Hi Manish,
>
>      > I wish to iterate over all instructions (where opCode == desired_opCode). I
>      > could iterate over all the instruction expect the nested instructions like:
>      >
>      >   %add.ptr229 = getelementptr inbounds i8* getelementptr inbounds ([4096
>     x i8]*
>      > @_Func1, i32 0, i32 0), i64 %idx.ext228
>
>     this is not a nested instruction.  The inner getelementptr is a ConstantExpr
>     (a constant) not an instruction.
>
>      > I wish to break this nested instruction in two instructions.
>
>     Why?
>
>     Ciao, Duncan.
>
>       Please let me know
>      > if there is already existing method in llvm to do the job.
>      >
>      > Thanks,
>      > Manish
>      >
>      >
>      > _______________________________________________
>      > 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
>
>     _______________________________________________
>     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
>
>




More information about the llvm-dev mailing list