I think we need to be even more conservative when traversing memory
phis, to make sure we catch any loop carried dependences.
This approach updates fillInCurrentPair to use unknown sizes for
locations when we walk over a phi, unless the location is guaranteed to
be loop-invariant for any possible loop. Using an unknown size for
locations should ensure we catch all memory accesses to locations after
the given memory location, which includes loop-carried dependences.
As the comment correctly states, an unknown size guarantees that locations after the pointer are considered as clobbers. However, locations before it are not. Could there still be an issue for decrementing pointer loops here?