HomePhabricator

[SCEV] Model ptrtoint(SCEVUnknown) cast not as unknown, but as zext/trunc/self…

Authored by lebedev.ri on Oct 12 2020, 1:00 AM.

Description

[SCEV] Model ptrtoint(SCEVUnknown) cast not as unknown, but as zext/trunc/self of SCEVUnknown

While we indeed can't treat them as no-ops, i believe we can/should
do better than just modelling them as unknown. inttoptr story
is complicated, but for ptrtoint, it seems straight-forward
to model it just as a zext-or-trunc of unknown.

This may be important now that we track towards
making inttoptr/ptrtoint casts not no-op,
and towards preventing folding them into loads/etc
(see D88979/D88789/D88788)

Reviewed By: mkazantsev

Differential Revision: https://reviews.llvm.org/D88806