168 void unlink_from_all(PerRegionTable * prt);
169
170 bool contains_reference_locked(OopOrNarrowOopStar from) const;
171
172 // Clear the from_card_cache entries for this region.
173 void clear_fcc();
174 public:
175 // Create a new remembered set for the given heap region. The given mutex should
176 // be used to ensure consistency.
177 OtherRegionsTable(HeapRegion* hr, Mutex* m);
178
179 // For now. Could "expand" some tables in the future, so that this made
180 // sense.
181 void add_reference(OopOrNarrowOopStar from, uint tid);
182
183 // Returns whether the remembered set contains the given reference.
184 bool contains_reference(OopOrNarrowOopStar from) const;
185
186 // Returns whether this remembered set (and all sub-sets) have an occupancy
187 // that is less or equal than the given occupancy.
188 bool occupancy_less_or_equal_than(size_t occ) const;
189
190 // Removes any entries shown by the given bitmaps to contain only dead
191 // objects. Not thread safe.
192 // Set bits in the bitmaps indicate that the given region or card is live.
193 void scrub(CardTableModRefBS* ctbs, BitMap* region_bm, BitMap* card_bm);
194
195 // Returns whether this remembered set (and all sub-sets) does not contain any entry.
196 bool is_empty() const;
197
198 // Returns the number of cards contained in this remembered set.
199 size_t occupied() const;
200 size_t occ_fine() const;
201 size_t occ_coarse() const;
202 size_t occ_sparse() const;
203
204 static jint n_coarsenings() { return _n_coarsenings; }
205
206 // Returns size of the actual remembered set containers in bytes.
207 size_t mem_size() const;
208 // Returns the size of static data in bytes.
|
168 void unlink_from_all(PerRegionTable * prt);
169
170 bool contains_reference_locked(OopOrNarrowOopStar from) const;
171
172 // Clear the from_card_cache entries for this region.
173 void clear_fcc();
174 public:
175 // Create a new remembered set for the given heap region. The given mutex should
176 // be used to ensure consistency.
177 OtherRegionsTable(HeapRegion* hr, Mutex* m);
178
179 // For now. Could "expand" some tables in the future, so that this made
180 // sense.
181 void add_reference(OopOrNarrowOopStar from, uint tid);
182
183 // Returns whether the remembered set contains the given reference.
184 bool contains_reference(OopOrNarrowOopStar from) const;
185
186 // Returns whether this remembered set (and all sub-sets) have an occupancy
187 // that is less or equal than the given occupancy.
188 bool occupancy_less_or_equal_than(size_t limit) const;
189
190 // Removes any entries shown by the given bitmaps to contain only dead
191 // objects. Not thread safe.
192 // Set bits in the bitmaps indicate that the given region or card is live.
193 void scrub(CardTableModRefBS* ctbs, BitMap* region_bm, BitMap* card_bm);
194
195 // Returns whether this remembered set (and all sub-sets) does not contain any entry.
196 bool is_empty() const;
197
198 // Returns the number of cards contained in this remembered set.
199 size_t occupied() const;
200 size_t occ_fine() const;
201 size_t occ_coarse() const;
202 size_t occ_sparse() const;
203
204 static jint n_coarsenings() { return _n_coarsenings; }
205
206 // Returns size of the actual remembered set containers in bytes.
207 size_t mem_size() const;
208 // Returns the size of static data in bytes.
|