[PATCH] D125551: [ValueTracking] Handle and/or on RHS of isImpliedCondition()
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 16 07:19:23 PDT 2022
nikic added inline comments.
================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:6675-6679
+ if (!isImpliedCondition(LHS, RHS1, DL, LHSIsTrue, Depth + 1)
+ .getValueOr(true) ||
+ !isImpliedCondition(LHS, RHS2, DL, LHSIsTrue, Depth + 1)
+ .getValueOr(true))
+ return false;
----------------
spatel wrote:
> I had to step through this to convince myself that the logic was correct.
>
> That is probably the shortest way to write it, but something like this might be easier to read?
> if (auto ImpR1 = isImpliedCondition(LHS, RHS1, DL, LHSIsTrue, Depth + 1))
> if (*ImpR1 == false)
> return false;
> if (auto ImpR2 = isImpliedCondition(LHS, RHS2, DL, LHSIsTrue, Depth + 1))
> if (*ImpR2 == false)
> return false;
>
Yeah, I agree that the `and` case is a bit hard to understand as written.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D125551/new/
https://reviews.llvm.org/D125551
More information about the llvm-commits
mailing list