Currently we do not correctly invalidate memoized results for add recurrences
that were created directly (i.e. they were not created from a Value). This
change fixes this by keeping loop use lists and using the loop use lists to
determine which SCEV expressions to invalidate.
Here are some statistics on the number of uses of in the use lists of all loops
on a clang bootstrap (config: release, no asserts):
Count: 731310 Min: 1 Mean: 8.555150 50th %tile: 4 95th %tile: 25 99th %tile: 53 Max: 433