[PATCH] ScalarEvolution incorrectly assumes that the start of certain add recurrences don't overflow
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