RFR: Simplify resolve_forwarded_pointer shape and uses
Roman Kennke
rkennke at redhat.com
Fri May 10 20:13:02 UTC 2019
Very nice! Go for it!
Thank you!
Roman
> 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)
>
More information about the shenandoah-dev
mailing list