Mercurial > hg > truffle
comparison src/share/vm/code/dependencies.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 | b27c72d69fd1 |
children | da4dd142ea01 |
comparison
equal
deleted
inserted
replaced
4038:869804b759e7 | 4737:75c0a73eee98 |
---|---|
1622 // Mark all dependee and all its superclasses | 1622 // Mark all dependee and all its superclasses |
1623 // Mark transitive interfaces | 1623 // Mark transitive interfaces |
1624 for (ContextStream str(*this); str.next(); ) { | 1624 for (ContextStream str(*this); str.next(); ) { |
1625 klassOop d = str.klass(); | 1625 klassOop d = str.klass(); |
1626 assert(!instanceKlass::cast(d)->is_marked_dependent(), "checking"); | 1626 assert(!instanceKlass::cast(d)->is_marked_dependent(), "checking"); |
1627 instanceKlass::cast(d)->set_is_marked_dependent(true); | 1627 instanceKlass::cast(d)->set_is_marked_dependent(); |
1628 } | 1628 } |
1629 } | 1629 } |
1630 | 1630 |
1631 KlassDepChange::~KlassDepChange() { | 1631 KlassDepChange::~KlassDepChange() { |
1632 // Unmark all dependee and all its superclasses | 1632 // Unmark all dependee and all its superclasses |
1633 // Unmark transitive interfaces | 1633 // Unmark transitive interfaces |
1634 for (ContextStream str(*this); str.next(); ) { | 1634 for (ContextStream str(*this); str.next(); ) { |
1635 klassOop d = str.klass(); | 1635 klassOop d = str.klass(); |
1636 instanceKlass::cast(d)->set_is_marked_dependent(false); | 1636 instanceKlass::cast(d)->clear_is_marked_dependent(); |
1637 } | 1637 } |
1638 } | 1638 } |
1639 | 1639 |
1640 bool KlassDepChange::involves_context(klassOop k) { | 1640 bool KlassDepChange::involves_context(klassOop k) { |
1641 if (k == NULL || !Klass::cast(k)->oop_is_instance()) { | 1641 if (k == NULL || !Klass::cast(k)->oop_is_instance()) { |