[PATCH] D99121: [IR][InstCombine] IntToPtr Produces Typeless Pointer To Byte

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 23 12:04:28 PDT 2021


dblaikie added a subscriber: jyknight.
dblaikie added a comment.

In D99121#2644362 <https://reviews.llvm.org/D99121#2644362>, @lebedev.ri wrote:

> In D99121#2644223 <https://reviews.llvm.org/D99121#2644223>, @nlopes wrote:
>
>> The pointee type in LLVM doesn't really matter. It's even supposed to disappear one day after the migration is completed.
>> E.g., i8* and i64* are exactly the same thing: they are pointers to data.
>
> Yep. That will be indeed a great to see.
>
>> So, I don't understand the motivation for this patch. It doesn't solve the root cause of the problem (which one btw?).
>
> It is indeed temporary until Opaque pointers are here.
> The problem has been stated last time in D99051 <https://reviews.llvm.org/D99051> by @ruiling:
> https://godbolt.org/z/x7E1EjWvv, i.e. given the same integer,
> there can be any number of pointers `inttoptr`'d from it,
> and passes won't be able to tell that they are identical.
>
> @dblaikie @t.p.northover can anyone comment on the Opaque Pointers progress? Is there a checklist somewhere?

no checklist, unfortunately - myself, @t.p.northover, @jyknight, and @arsenm have all done bits and pieces of work on it lately.

I think we've got most of the big IR changes (adding explicit types where they'll be needed when they're no longer carried on the type of pointer parameters) - @arsenm's D98146 <https://reviews.llvm.org/D98146> is another piece in that area, hopefully near the last I think.

After all that's in place, the next step I think would be to introduce the typeless pointer, support it as an operand to these various operations - and then try producing it as a result of instructions too. But I'm probably missing a bunch of important steps we'll find are necessary...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99121/new/

https://reviews.llvm.org/D99121



More information about the llvm-commits mailing list