RFR: 8339113: AccessFlags can be u2 in metadata [v2]

Dean Long dlong at openjdk.org
Thu Dec 19 19:10:36 UTC 2024


On Thu, 19 Dec 2024 12:52:34 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> Please review this change that makes AccessFlags and modifier_flags u2 types and removes the last remnants of Hotspot adding internal access flags.  This change moves AccessFlags and modifier_flags in Klass to alignment gaps saving 16 bytes.  From pahole: so it's a bit better.
>> 
>> before:
>> 
>>         /* size: 216, cachelines: 4, members: 25, static members: 17 */
>>         /* sum members: 194, holes: 3, sum holes: 18 */
>> 
>> 
>> after:
>> 
>>         /* size: 200, cachelines: 4, members: 25, static members: 17 */
>>         /* sum members: 188, holes: 4, sum holes: 12 */
>> 
>> 
>> We may eventually move the modifiers to java.lang.Class but that's WIP.
>> 
>> Tested with tier1-7 on oracle platforms.  Did test builds on other platforms (please try these changes ppc/arm32 and s390).  Also requires minor Graal changes.
>
> Coleen Phillimore has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Update src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp
>    
>    Co-authored-by: David Holmes <62092539+dholmes-ora at users.noreply.github.com>
>  - Update src/hotspot/share/opto/library_call.cpp
>    
>    Co-authored-by: David Holmes <62092539+dholmes-ora at users.noreply.github.com>

src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp line 691:

> 689: 
> 690:     // Skip if we don't have to unlock. (???is this right???)
> 691:     rldicl_(R0, Raccess_flags, 64-JVM_ACC_SYNCHRONIZED_BIT, 63); // Extract bit and compare to 0.

Using `testbitdi` might make it more readable to non-experts.  It took me a while reading aix docs to realize that this platform numbers LSB as 63 and MSB/sign as 0.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/22246#discussion_r1893009550


More information about the hotspot-dev mailing list