643 bool humongous_region_is_always_live(uint index); |
643 bool humongous_region_is_always_live(uint index); |
644 // Returns whether the given region (which must be a humongous (start) region) |
644 // Returns whether the given region (which must be a humongous (start) region) |
645 // is considered a candidate for eager reclamation. |
645 // is considered a candidate for eager reclamation. |
646 bool humongous_region_is_candidate(uint index); |
646 bool humongous_region_is_candidate(uint index); |
647 // Register the given region to be part of the collection set. |
647 // Register the given region to be part of the collection set. |
648 inline void register_humongous_region_with_in_cset_fast_test(uint index); |
648 inline void register_humongous_region_with_cset(uint index); |
649 // Register regions with humongous objects (actually on the start region) in |
649 // Register regions with humongous objects (actually on the start region) in |
650 // the in_cset_fast_test table. |
650 // the in_cset_fast_test table. |
651 void register_humongous_regions_with_in_cset_fast_test(); |
651 void register_humongous_regions_with_cset(); |
652 // We register a region with the fast "in collection set" test. We |
652 // We register a region with the fast "in collection set" test. We |
653 // simply set to true the array slot corresponding to this region. |
653 // simply set to true the array slot corresponding to this region. |
654 void register_young_region_with_in_cset_fast_test(HeapRegion* r) { |
654 void register_young_region_with_cset(HeapRegion* r) { |
655 _in_cset_fast_test.set_in_young(r->hrm_index()); |
655 _in_cset_fast_test.set_in_young(r->hrm_index()); |
656 } |
656 } |
657 void register_old_region_with_in_cset_fast_test(HeapRegion* r) { |
657 void register_old_region_with_cset(HeapRegion* r) { |
658 _in_cset_fast_test.set_in_old(r->hrm_index()); |
658 _in_cset_fast_test.set_in_old(r->hrm_index()); |
659 } |
659 } |
660 |
660 void clear_in_cset(const HeapRegion* hr) { |
661 // This is a fast test on whether a reference points into the |
661 _in_cset_fast_test.clear(hr); |
662 // collection set or not. Assume that the reference |
662 } |
663 // points into the heap. |
|
664 inline bool in_cset_fast_test(oop obj); |
|
665 |
663 |
666 void clear_cset_fast_test() { |
664 void clear_cset_fast_test() { |
667 _in_cset_fast_test.clear(); |
665 _in_cset_fast_test.clear(); |
668 } |
666 } |
669 |
667 |
1244 |
1242 |
1245 // Return "TRUE" iff the given object address is within the collection |
1243 // Return "TRUE" iff the given object address is within the collection |
1246 // set. Slow implementation. |
1244 // set. Slow implementation. |
1247 inline bool obj_in_cs(oop obj); |
1245 inline bool obj_in_cs(oop obj); |
1248 |
1246 |
|
1247 inline bool is_in_cset(const HeapRegion *hr); |
1249 inline bool is_in_cset(oop obj); |
1248 inline bool is_in_cset(oop obj); |
1250 |
1249 |
1251 inline bool is_in_cset_or_humongous(const oop obj); |
1250 inline bool is_in_cset_or_humongous(const oop obj); |
1252 |
1251 |
1253 private: |
1252 private: |