In UnrolledInstAnalyzer, we already simplify the addresses of loads
inside the loop to a base pointer and offset. We can use this
information to check if we can find a store outside the loop that is a
def for the load, if unrolled.o
To find potentially defining stores, this patch uses MemorySSA. I am not
entirely sure if it is a good idea to rely on MemorySSA here already.
@asbirlea, what do you think?
If it makes sense to use MemorySSA here, I'd make sure we preserve it
during loop unrolling. I guess we would have to make sure it gets
preserved until the next MemorySSA user in the pipeline, to negate the
compile time impact.