lebedev.ri added subscribers: t.p.northover, dblaikie.
lebedev.ri added a comment.

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?



================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp:278-280
+  if (firstOp == Instruction::IntToPtr && secondOp == Instruction::BitCast)
+    Res = 0;
+
----------------
ruiling wrote:
> If we want to disable int2ptr + bitcast unconditionally, then why not 
> directly make it in CastInst::isEliminableCastPair()?
Because technically that is still legal, much like changing integer types of 
the `inttoptr`/`ptrtoint`,
which also aren't prohibited in `isEliminableCastPair()`.


================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp:1949-1953
+  if (CI.getType() != BytePtrTy) {
+    Value *P = Builder.CreateIntToPtr(CI.getOperand(0), BytePtrTy);
+    return new BitCastInst(P, CI.getType());
+  }
+
----------------
ruiling wrote:
> The idea here sounds good to me, but seems causing some new problems for the 
> regression tests. I am not sure the whether the regressions are easy to fix?
FWIW all the problems are temporary until LLVM IR is migrated to typeless 
pointer types.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99121

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to