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