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

Nikita Popov via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 25 00:25:19 PST 2022


On Tue, Jan 25, 2022 at 8:00 AM 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?
>

You can use GEPOperator::accumulateConstantOffset(). Or more generically,
there is Value::stripAndAccumulateConstantOffsets(), which can look through
multiple GEPs, bitcasts, etc.

Regards,
Nikita
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20220125/2163e44a/attachment-0001.html>


More information about the llvm-dev mailing list