Mercurial > hg > truffle
comparison src/share/vm/runtime/vmStructs.cpp @ 4737:75c0a73eee98
7102776: Pack instanceKlass boolean fields into single u1 field
Summary: 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
Contributed-by: Jiangli Zhou <jiangli.zhou@oracle.com>
author | coleenp |
---|---|
date | Thu, 17 Nov 2011 12:53:59 -0500 |
parents | fd65bc7c09b6 |
children | 52b5d32fbfaf |
comparison
equal
deleted
inserted
replaced
4038:869804b759e7 | 4737:75c0a73eee98 |
---|---|
305 nonstatic_field(instanceKlass, _inner_classes, typeArrayOop) \ | 305 nonstatic_field(instanceKlass, _inner_classes, typeArrayOop) \ |
306 nonstatic_field(instanceKlass, _nonstatic_field_size, int) \ | 306 nonstatic_field(instanceKlass, _nonstatic_field_size, int) \ |
307 nonstatic_field(instanceKlass, _static_field_size, int) \ | 307 nonstatic_field(instanceKlass, _static_field_size, int) \ |
308 nonstatic_field(instanceKlass, _static_oop_field_count, int) \ | 308 nonstatic_field(instanceKlass, _static_oop_field_count, int) \ |
309 nonstatic_field(instanceKlass, _nonstatic_oop_map_size, int) \ | 309 nonstatic_field(instanceKlass, _nonstatic_oop_map_size, int) \ |
310 nonstatic_field(instanceKlass, _is_marked_dependent, bool) \ | 310 nonstatic_field(instanceKlass, _misc_flags, u1) \ |
311 nonstatic_field(instanceKlass, _minor_version, u2) \ | 311 nonstatic_field(instanceKlass, _minor_version, u2) \ |
312 nonstatic_field(instanceKlass, _major_version, u2) \ | 312 nonstatic_field(instanceKlass, _major_version, u2) \ |
313 nonstatic_field(instanceKlass, _init_state, instanceKlass::ClassState) \ | 313 nonstatic_field(instanceKlass, _init_state, instanceKlass::ClassState) \ |
314 nonstatic_field(instanceKlass, _init_thread, Thread*) \ | 314 nonstatic_field(instanceKlass, _init_thread, Thread*) \ |
315 nonstatic_field(instanceKlass, _vtable_len, int) \ | 315 nonstatic_field(instanceKlass, _vtable_len, int) \ |
1360 declare_unsigned_integer_type(jushort) \ | 1360 declare_unsigned_integer_type(jushort) \ |
1361 declare_unsigned_integer_type(unsigned long) \ | 1361 declare_unsigned_integer_type(unsigned long) \ |
1362 /* The compiler thinks this is a different type than */ \ | 1362 /* The compiler thinks this is a different type than */ \ |
1363 /* unsigned short on Win32 */ \ | 1363 /* unsigned short on Win32 */ \ |
1364 declare_unsigned_integer_type(u2) \ | 1364 declare_unsigned_integer_type(u2) \ |
1365 declare_unsigned_integer_type(u1) \ | |
1365 declare_unsigned_integer_type(unsigned) \ | 1366 declare_unsigned_integer_type(unsigned) \ |
1366 \ | 1367 \ |
1367 /*****************************/ \ | 1368 /*****************************/ \ |
1368 /* C primitive pointer types */ \ | 1369 /* C primitive pointer types */ \ |
1369 /*****************************/ \ | 1370 /*****************************/ \ |
2383 declare_constant(instanceKlass::loaded) \ | 2384 declare_constant(instanceKlass::loaded) \ |
2384 declare_constant(instanceKlass::linked) \ | 2385 declare_constant(instanceKlass::linked) \ |
2385 declare_constant(instanceKlass::being_initialized) \ | 2386 declare_constant(instanceKlass::being_initialized) \ |
2386 declare_constant(instanceKlass::fully_initialized) \ | 2387 declare_constant(instanceKlass::fully_initialized) \ |
2387 declare_constant(instanceKlass::initialization_error) \ | 2388 declare_constant(instanceKlass::initialization_error) \ |
2389 declare_constant(instanceKlass::IS_MARKED_DEPENDENT) \ | |
2388 \ | 2390 \ |
2389 /*********************************/ \ | 2391 /*********************************/ \ |
2390 /* Symbol* - symbol max length */ \ | 2392 /* Symbol* - symbol max length */ \ |
2391 /*********************************/ \ | 2393 /*********************************/ \ |
2392 \ | 2394 \ |