When rematerializing for geps and casts in presence of phis, we need to make
sure that unrelocated values (the current Phi node) should never be used.
The relocation is only done for the base version of the phi, which is generated
by findBasePointers function.
This is a fix when IR verifier for safepoints identifies uses of unrelocated values,
which was generated due to commit rL279975.
I'm not really following why this is needed. How can there be uses of the original phi which don't get updated? Isn't that a missed relocation bug? Looking at the added test case, I don't see how that's related to the change?
If you could expand a bit more on the scenario which causes this and how we reach the problematic situation, I'd appreciate it.