My previous fix for the phi-of-ops was a bit of a big hammer.
This patch uses Memory SSA to detect when a load is guaranteed to not depend on a store that may happen inside the loop.
This patch fixes the regression in storeoverstore.ll, where the big hammer had disabled phi-of-ops for this test case.
(if instruction is not modeled in MSSA)