[llvm-dev] How to calculate the offset obtained via a GEP instruction

Markus Böck via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 24 23:04:18 PST 2022


The easiest way to do so in my experience is to change the base operand to
a null pointer of the type and then convert the result of the GEP to an
integer using ptrtoint. That will give you the offset in bytes and a pass
using the target info will constant fold it as well.

On Tue, Jan 25, 2022, 08:00 Alberto Barbaro via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi all,
> so I'm trying to understand how to manually calculate the offset
> calculated by a GEP instruction. I found that this question was asked over
> 6 years ago on stackoverflow[1] as well but never got a real answer.
>
> Since I need exactly the same, is there anyone willing to help me to
> understand how to calculate the offset?
>
> Thanks
>
>
> [1]
> https://stackoverflow.com/questions/32444497/determine-byte-offset-of-getelementptr
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20220125/98bd470e/attachment.html>


More information about the llvm-dev mailing list