RFR: 8339113: AccessFlags can be u2 in metadata
Coleen Phillimore
coleenp at openjdk.org
Thu Dec 19 12:52:35 UTC 2024
On Tue, 19 Nov 2024 16:18:48 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.
The as_int() was because we are using the AccessFlags as an _integral_ value. I was trying to minimize the effects of the change and the code uses AccessFlags as an integral value. as_int() returns u2 so I guess that's confusing. I don't want AccessFlags::get_flags() because that's implies the return is AccessFlags. I could change the name to as_unsigned_short(). Would that be less confusing?
Thank you David for looking through this change.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22246#issuecomment-2553766012
More information about the serviceability-dev
mailing list