comparison src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp @ 3377:2aa9ddbb9e60

7041789: 30% perf regression with c2/arm following 7017732 Summary: Implement a more accurate is_scavengable() Reviewed-by: stefank, jcoomes, ysr
author jmasa
date Tue, 03 May 2011 10:30:34 -0700
parents f95d63e2154a
children 6747fd0512e0
comparison
equal deleted inserted replaced
3373:688202ef6306 3377:2aa9ddbb9e60
125 // Return "true" if all generations (but perm) have reached the 125 // Return "true" if all generations (but perm) have reached the
126 // maximal committed limit that they can reach, without a garbage 126 // maximal committed limit that they can reach, without a garbage
127 // collection. 127 // collection.
128 virtual bool is_maximal_no_gc() const; 128 virtual bool is_maximal_no_gc() const;
129 129
130 // Return true if the reference points to an object that
131 // can be moved in a partial collection. For currently implemented
132 // generational collectors that means during a collection of
133 // the young gen.
134 virtual bool is_scavengable(const void* addr);
135
130 // Does this heap support heap inspection? (+PrintClassHistogram) 136 // Does this heap support heap inspection? (+PrintClassHistogram)
131 bool supports_heap_inspection() const { return true; } 137 bool supports_heap_inspection() const { return true; }
132 138
133 size_t permanent_capacity() const; 139 size_t permanent_capacity() const;
134 size_t permanent_used() const; 140 size_t permanent_used() const;
140 146
141 bool is_in_reserved(const void* p) const; 147 bool is_in_reserved(const void* p) const;
142 bool is_in_permanent(const void *p) const { // reserved part 148 bool is_in_permanent(const void *p) const { // reserved part
143 return perm_gen()->reserved().contains(p); 149 return perm_gen()->reserved().contains(p);
144 } 150 }
151
152 #ifdef ASSERT
153 virtual bool is_in_partial_collection(const void *p);
154 #endif
145 155
146 bool is_permanent(const void *p) const { // committed part 156 bool is_permanent(const void *p) const { // committed part
147 return perm_gen()->is_in(p); 157 return perm_gen()->is_in(p);
148 } 158 }
149 159