7102776: Pack instanceKlass boolean fields into single u1 field

Reduce class runtime memory usage by packing 4 instanceKlass boolean fields into single u1 field. Save 4-byte for each loaded class.

Reviewed-by: dholmes, bobv, phh, twisti, never, coleenp
This commit is contained in:
Jiangli Zhou 2011-11-17 12:53:59 -05:00 committed by Coleen Phillimore
parent 9d6d4e292b
commit ee88278d34
5 changed files with 50 additions and 20 deletions

View file

@ -307,7 +307,7 @@ static inline uint64_t cast_uint64_t(size_t x)
nonstatic_field(instanceKlass, _static_field_size, int) \
nonstatic_field(instanceKlass, _static_oop_field_count, int) \
nonstatic_field(instanceKlass, _nonstatic_oop_map_size, int) \
nonstatic_field(instanceKlass, _is_marked_dependent, bool) \
nonstatic_field(instanceKlass, _misc_flags, u1) \
nonstatic_field(instanceKlass, _minor_version, u2) \
nonstatic_field(instanceKlass, _major_version, u2) \
nonstatic_field(instanceKlass, _init_state, instanceKlass::ClassState) \
@ -1362,6 +1362,7 @@ static inline uint64_t cast_uint64_t(size_t x)
/* The compiler thinks this is a different type than */ \
/* unsigned short on Win32 */ \
declare_unsigned_integer_type(u2) \
declare_unsigned_integer_type(u1) \
declare_unsigned_integer_type(unsigned) \
\
/*****************************/ \
@ -2385,6 +2386,7 @@ static inline uint64_t cast_uint64_t(size_t x)
declare_constant(instanceKlass::being_initialized) \
declare_constant(instanceKlass::fully_initialized) \
declare_constant(instanceKlass::initialization_error) \
declare_constant(instanceKlass::IS_MARKED_DEPENDENT) \
\
/*********************************/ \
/* Symbol* - symbol max length */ \