RFR(M): 8212243: More gc interface tweaks for arraycopy and some other smaller changes in preparation for Shenandoah
Roland Westrelin
rwestrel at redhat.com
Thu Oct 18 15:14:41 UTC 2018
> Even though I never suggested adding an API for the store unless you
> feel like it, I guess I should mention that you can represent that you
> don't want SATB barrier with the IS_DEST_UNINITIALIZED decorator, which
> is how this is already done in the rest of the VM.
We only need the store side for shenandoah. Regular loads works fine in
this case. So if the C2Access hierarchy is now:
class C2Access: public StackObj {
protected:
DecoratorSet _decorators;
BasicType _type;
Node* _base;
C2AccessValuePtr& _addr;
Node* _raw_access;
...
class C2ParseAccess: public C2Access {
protected:
GraphKit* _kit;
...
class C2OptAccess: public C2Access {
Node* _mem;
Node* _ctl;
...
What would the signature of the BarrierSetC2 methods be?
Is it still:
virtual Node* store_at(C2Access& access, C2AccessValue& val) const;
virtual Node* load_at(C2Access& access, const Type* val_type) const;
?
Or
virtual Node* store_at(C2ParseAccess& access, C2AccessValue& val) const;
virtual Node* load_at(C2ParseAccess& access, const Type* val_type) const;
virtual Node* store_at(C2OptAccess& access, C2AccessValue& val) const;
virtual Node* load_at(C2OptAccess& access, const Type* val_type) const;
?
Roland.
More information about the hotspot-compiler-dev
mailing list