1316
1317
1318 // Convenience function to be used in situations where the heap type can be
1319 // asserted to be this type.
1320 static G1CollectedHeap* heap();
1321
1322 void set_region_short_lived_locked(HeapRegion* hr);
1323 // add appropriate methods for any other surv rate groups
1324
1325 YoungList* young_list() const { return _young_list; }
1326
1327 uint old_regions_count() const { return _old_set.length(); }
1328
1329 uint humongous_regions_count() const { return _humongous_set.length(); }
1330
1331 // debugging
1332 bool check_young_list_well_formed() {
1333 return _young_list->check_list_well_formed();
1334 }
1335
1336 bool check_young_list_empty(bool check_heap,
1337 bool check_sample = true);
1338
1339 // *** Stuff related to concurrent marking. It's not clear to me that so
1340 // many of these need to be public.
1341
1342 // The functions below are helper functions that a subclass of
1343 // "CollectedHeap" can use in the implementation of its virtual
1344 // functions.
1345 // This performs a concurrent marking of the live objects in a
1346 // bitmap off to the side.
1347 void doConcurrentMark();
1348
1349 bool isMarkedPrev(oop obj) const;
1350 bool isMarkedNext(oop obj) const;
1351
1352 // Determine if an object is dead, given the object and also
1353 // the region to which the object belongs. An object is dead
1354 // iff a) it was not allocated since the last mark, b) it
1355 // is not marked, and c) it is not in an archive region.
1356 bool is_obj_dead(const oop obj, const HeapRegion* hr) const {
1357 return
|
1316
1317
1318 // Convenience function to be used in situations where the heap type can be
1319 // asserted to be this type.
1320 static G1CollectedHeap* heap();
1321
1322 void set_region_short_lived_locked(HeapRegion* hr);
1323 // add appropriate methods for any other surv rate groups
1324
1325 YoungList* young_list() const { return _young_list; }
1326
1327 uint old_regions_count() const { return _old_set.length(); }
1328
1329 uint humongous_regions_count() const { return _humongous_set.length(); }
1330
1331 // debugging
1332 bool check_young_list_well_formed() {
1333 return _young_list->check_list_well_formed();
1334 }
1335
1336 bool check_young_list_empty(bool check_heap);
1337
1338 // *** Stuff related to concurrent marking. It's not clear to me that so
1339 // many of these need to be public.
1340
1341 // The functions below are helper functions that a subclass of
1342 // "CollectedHeap" can use in the implementation of its virtual
1343 // functions.
1344 // This performs a concurrent marking of the live objects in a
1345 // bitmap off to the side.
1346 void doConcurrentMark();
1347
1348 bool isMarkedPrev(oop obj) const;
1349 bool isMarkedNext(oop obj) const;
1350
1351 // Determine if an object is dead, given the object and also
1352 // the region to which the object belongs. An object is dead
1353 // iff a) it was not allocated since the last mark, b) it
1354 // is not marked, and c) it is not in an archive region.
1355 bool is_obj_dead(const oop obj, const HeapRegion* hr) const {
1356 return
|