RFR: 8231497: [lworld] Inline type use of Access API (Runtime)
david.simms at oracle.com
Thu Sep 26 14:23:29 UTC 2019
So for the longest time Valhalla has completely ignored the Heap Access
API, and gone and used write barriers directly, thereby breaking other
GCs with different barrier requirements.
Here is a 1st pass at adding the required Heap Access API for "inline
types", and an runtime (C++) implementation for modBarrierSet and
zBarrierSet. No compiler support as yet, I've open another bug for that.
* Reviewed the actual Access API changes already with Erik Österlund,
he's okayed it.
* There was some inline header file clean up required, sorry for the noise
* Hotspot convention uses the Access API in *Oop and * Klass
implementation, not directly in runtime code
o ValueKlass has "value_copy_*" API since it deals with naked
payload (inlined layout from different containers), not just
oops (otherwise they could have gone into oop API)
* Rather than a single "value_store", gone with multiple methods so
call-site can use the appropriate decorators
o Remove runtime conditions
o Feel free to have an opinion on the "value_copy*" API naming
* Passes testing
o ValueOops -Xint, C1 and C2 need further fix 
More information about the valhalla-dev