[PATCH] ScalarEvolution incorrectly assumes that the start of certain add recurrences don't overflow

Andrew Trick atrick at apple.com
Fri Feb 6 18:41:11 PST 2015

Actually, you could probably break this in theory without an early exit with a recurrence defined by a loop header phi that is not actually used within the loop except for the increment, then only used conditionally outside the loop. I say "in theory" because of the way the poison bit theoretically propagates. In SCEV, we basically assume undefined behavior the moment the value is used in a recurrence. That issue is much bigger than this bit of code though. You would really have to strip NSW/NUW from SCEV to change that assumption.



More information about the llvm-commits mailing list