RFR: Simplify resolve_forwarded_pointer shape and uses
Aleksey Shipilev
shade at redhat.com
Fri May 10 20:10:01 UTC 2019
http://cr.openjdk.java.net/~shade/shenandoah/nofwdptr-simplify-rfp/webrev.01/
Compared to upstream, we need additional register in resolve_forwarded_pointer to decode the fwdptr.
This forces us to have new tmp3 register for all CAS shapes, which is not very clean, wastes
register, and also fails on x86_32 because there are not enough registers on some paths!
I suggest we make resolve_forwarded_pointer push/pop the register if needed. The only path where it
is needed is from CAS barriers, where the resolves are on slow/recovery paths anyway. LRB path just
passes the available register where possible.
The patch reverts a lot of stuff to upstream state, removing ~100 lines of difference. Notably, all
.ad changes are gone.
Testing: Linux {x86_64, aarch64} hotspot_gc_shenandoah; Linux x86_32 (ad-hoc tests that used to fail)
--
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list