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

Alberto Barbaro via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 24 23:12:35 PST 2022


Hi Markus,
Since I'm working on an llvm plugin and I have access to the GEP object but
I'm not really sure how to do what you told me would you be able to show it
to me with few lines of code?

Thanks

On Tue, Jan 25, 2022, 07:04 Markus Böck <markus.boeck02 at gmail.com> wrote:

> 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/9d14fdb9/attachment.html>


More information about the llvm-dev mailing list