RFR: 8227637: Adjust Shenandoah C2 verifier to recognize IN_NATIVE barriers
Roman Kennke
rkennke at redhat.com
Mon Jul 15 10:14:38 UTC 2019
Hi Roland,
Thank you!
What do you think about making the IN_NATIVE barrier a special-case of
the general LRB? I would think that adding a flag to the LRBNode, and
calling to a different runtime entry when expanding the LRB should do
the trick. It would probably require some extra care to not accidentally
coalesce normal LRB with native-LRB. Are there other complications that
I should be aware of when I follow that route?
One optimization that comes to mind that is currently inhibited by the
IN_NATIVE barrier is replacing mirror->Klass*->mirror or
Klass*->mirror->Klas* load-chains by the simple variants. I have a patch
that implements is_gc_barrier() and step_over_gc_barrier() which solves
this for the current call to runtime, but it seems rather crude, and
dealing with IN_NATIVE just like normal LRB seems to cover all possible
scenarios of failing optimizations better.
What do you think?
Roman
>> http://cr.openjdk.java.net/~rkennke/JDK-8227637/webrev.00/
>
> Good.
>
> Roland.
>
More information about the hotspot-gc-dev
mailing list