While walking the use chain for identifying rematerializable values in RS4GC,
add the case where the current value and base value are the same PHI nodes.
This will aid rematerialization of geps and casts instead of adding gc.relocate.
Differential D23920
[StatepointsForGC] Identify values for rematerialization in presence of PHI anna on Aug 26 2016, 5:32 AM. Authored by
Details While walking the use chain for identifying rematerializable values in RS4GC, This will aid rematerialization of geps and casts instead of adding gc.relocate.
Diff Detail Event TimelineComment Actions Could you please add a couple of tests? Also you should update comment in the header of the "findRematerializableChainToBasePointer".
Comment Actions Upcoming change to handle review comments and with test cases from these examples discussed in review.
Comment Actions Added a test case to show what we are trying to solve. Frankly, the best solution would be to remove the extra base.phi that is getting created, but need to see how to go about it. Comment Actions LGTM w/minor comment
Comment Actions Ah, didnt see the update before my commit. However, I had added comments saying how such PHIs are generated and from which part of the algorithm. I'll explicitly mention this is a workaround for the deficiency. Thanks! |
I think it's important to call out in the comment that this is a workaround for deficiency in the base pointer rewriting code. That's not immediately obvious to everyone reading. :)
We really need to rewrite that code at some point. My initial prototype version has lived far longer than it should have.