[PATCH] D88806: [SCEV] Model inttoptr and ptrtoint casts not as unknown, but as zext/trunc/self of unknown

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 5 10:55:29 PDT 2020


lebedev.ri added a reviewer: hfinkel.
lebedev.ri added a comment.

In D88806#2312222 <https://reviews.llvm.org/D88806#2312222>, @efriedma wrote:

> See https://bugs.llvm.org/show_bug.cgi?id=34548 for the inttoptr semantic hole.



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

> In D88806#2310959 <https://reviews.llvm.org/D88806#2310959>, @efriedma wrote:
>
>> Also, treating two distinct inttoptr instructions with the same operand as if they're equivalent is a known source of unsoundness; I don't want to expand that.
>
> Hm, that sounds weird. Any chance for an example?
> Then i'm guessing we can't allow this in any form even if `unknown`-to-be is a `load`?

... and if we can't even model `inttoptr(load)` as `no-op cast(unknown)` (can we?),
i'm getting increasingly more worried that we can't fix this in instcombine, either.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88806



More information about the llvm-commits mailing list