llvm-project
f7dcdd94 - [Delinearization] Remove `isKnownLessThan` (#171821)

Commit
21 days ago
[Delinearization] Remove `isKnownLessThan` (#171821) Delinearization has `isKnownLessThan(a, b)` function to check if `a < b` is known at compile time. To check the predicate, it calls `isKnownNegative(a - b)`. There are at least two issues with this approach: - It mixed up a signed interpretation with an unsigned one. - It doesn't consider overflow. This function includes some additional logic, which suffers from the same issues. This patch replace the call to `isKnownLessThan(a, b)` with `ScalarEvolution::isKnownPredicate(ICmpInst::ICMP_SLT, a, b)` and removes the former function entirely, since using it is risky and may lead to incorrect results. Resolve #169812
Author
Parents
Loading