On 4/21/20 4:41 PM, Chris Plummer wrote:
Hi Coleen,

The SA changes look good. BTW, I've already made the TestIntConstant.java change in the Loom project. InstanceKlass::_misc_is_unsafe_anonymous was already changed to "8" in loom. You might want to sync up with Ron to make sure you aren't making conflicting changes in this area. Your code looks like:

 249   enum {
 250     _misc_rewritten                           = 1 << 0,  // methods rewritten.  251     _misc_has_nonstatic_fields                = 1 << 1,  // for sizing with UseCompressedOops  252     _misc_should_verify_class                 = 1 << 2,  // allow caching of preverification  253     _misc_is_unsafe_anonymous                 = 1 << 3,  // has embedded _unsafe_anonymous_host field  254     _misc_is_contended                        = 1 << 4,  // marked with contended annotation

Loom looks like:

  static const unsigned _misc_kind_field_size = 0;
...
  // Start after _misc_kind field.
  enum {
    _misc_rewritten                           = 1 << (_misc_kind_field_size + 0),  // methods rewritten.     _misc_has_nonstatic_fields                = 1 << (_misc_kind_field_size + 1),  // for sizing with UseCompressedOops     _misc_should_verify_class                 = 1 << (_misc_kind_field_size + 2),  // allow caching of preverification     _misc_is_unsafe_anonymous                 = 1 << (_misc_kind_field_size + 3),  // has embedded _unsafe_anonymous_host field     _misc_is_contended                        = 1 << (_misc_kind_field_size + 4),  // marked with contended annotation
...

At the very least this is a merge conflict that loom will need to deal with and it would help to know about in advance (Alan normally does the merges).

It looks like there are other changes in loom that motivated changing it like this.  Why is misc_kind_field_size = 0?

Did loom add more misc_flags ?  It turns out that there are plenty of available flags in the access_flags if more are needed.

Thank you for looking at the SA changes.

Coelen

thanks,

Chris

On 4/21/20 1:12 PM, coleen.phillim...@oracle.com wrote:
Summary: moved fields around and some constant fields into ConstantPool

This is a simple change except that I moved some constant fields from InstanceKlass into the constant pool so they can be shared read-only in the CDS archive.  There are associated repercussions in SA and JVMCI, so please look at these changes. Also moved similarly sized fields together in the class so there's less likelihood of introducing gaps in future InstanceKlass changes.

InstanceKlass is reduced from 544 to 520 bytes in a simple Hello World class.

open webrev at http://cr.openjdk.java.net/~coleenp/2020/8238048.01/webrev
bug link https://bugs.openjdk.java.net/browse/JDK-8238048

Tested with tier1-6.

Thanks,
Coleen




Reply via email to