RFR: 8219229: Make ConstantPool::tag_at and release_tag_at_put inlineable

Claes Redestad claes.redestad at oracle.com
Wed Feb 20 08:27:27 UTC 2019


On 2019-02-20 04:32, David Holmes wrote:
> Hi Claes,
> 
> Updates look good!

Thanks!

> 
> I have one small cleanup request in src/hotspot/share/oops/array.hpp. 
> Can we make at_acquire and release_at_put consistent with at and at_put, 
> both in terms of parameter naming and the layout style ie.
> 
>      T    at(int i) const                 { assert... }
>      void at_put(const int i, const T& x) { assert... }
>      T*   adr_at(const int i)             { assert... }
>      int  find(const T& x)                { return... }
> 
>      T    at_acquire(const int i)         { return... }
>      void release_at_put(int i, T x)      { Order...  }

Sure.

> 
> Which now begs a couple of questions:
> - why isn't at_acquire const?
> - why does at_put take a T& but release_at_put takes a T?

I'll have to defer these questions to someone more knowledgeable, but
will note that in the only instantiation of release_at_put T is a jbyte,
and that the underlying OrderAccess API is pass-by-value.

/Claes


More information about the hotspot-runtime-dev mailing list