[llvm-dev] Why are GEPs type based?
Nikita Popov via llvm-dev
llvm-dev at lists.llvm.org
Mon Jul 13 13:08:09 PDT 2020
Hi,
I've been wondering why LLVMs GEP instructions are based on types, rather
than encoding the raw address calculation as a base pointer plus some
scaled offsets (still in the form of a GEP, to retain provenance).
The type information does not seem particularly useful (shouldn't be used
as an optimization base, because struct layouts lie), but increases the
non-canonical IR space (there are many ways to encode the same GEP) and
increases compile-time (optimizations need to constantly decompose GEPs,
e.g. to get constant offsets).
What am I missing here?
Nikita,
Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200713/28789b73/attachment.html>
More information about the llvm-dev
mailing list