[PATCH] D89456: [SCEV] Introduce SCEVPtrToIntExpr (PR46786)
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 18 07:31:16 PDT 2021
nikic added a comment.
In D89456#2697284 <https://reviews.llvm.org/D89456#2697284>, @lebedev.ri wrote:
> In D89456#2697266 <https://reviews.llvm.org/D89456#2697266>, @nikic wrote:
>
>> SCEVUnknown is implemented as a value handle that nulls out the SCEV expression on deletion, and whenever a SCEV expression for a Value is looked up, we check whether there are any nullptr SCEVUnknowns and discard them in that case.
>>
>> As SCEVPtrToInt is really similar to SCEVUnknown, I've been wondering why we need this handling for SCEVUnknown but not for SCEVPtrToInt.
>>
>> (I don't have any particular reason for this question, just confused while reading the code...)
>
> `SCEVPtrToInt` isn't really similar to `SCEVUnknown`, because former is a "proper" SCEV expression,
> with a SCEV expression parent, while latter is a "root" expression, with LLVM IR `Value*` as a parent.
> So i wouldn't see why it would need the same handling as `SCEVUnknown`.
> Or to reword, shouldn't then every single SCEV expression have that same handling as `SCEVUnknown`?
Oh, of course! I got really confused here. For some reason I thought that SCEVPtrToInt directly referenced an IR value. I have no idea where I got that impression in the first place, it doesn't make sense.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D89456/new/
https://reviews.llvm.org/D89456
More information about the llvm-commits
mailing list