647 inline PLABStats* alloc_buffer_stats(InCSetState dest);
648
649 // Determines PLAB size for a given destination.
650 inline size_t desired_plab_sz(InCSetState dest);
651
652 inline AllocationContextStats& allocation_context_stats();
653
654 // Do anything common to GC's.
655 virtual void gc_prologue(bool full);
656 virtual void gc_epilogue(bool full);
657
658 inline void set_humongous_is_live(oop obj);
659
660 bool humongous_is_live(uint region) {
661 return _humongous_is_live.is_live(region);
662 }
663
664 // Returns whether the given region (which must be a humongous (start) region)
665 // is to be considered conservatively live regardless of any other conditions.
666 bool humongous_region_is_always_live(uint index);
667 // Register the given region to be part of the collection set.
668 inline void register_humongous_region_with_in_cset_fast_test(uint index);
669 // Register regions with humongous objects (actually on the start region) in
670 // the in_cset_fast_test table.
671 void register_humongous_regions_with_in_cset_fast_test();
672 // We register a region with the fast "in collection set" test. We
673 // simply set to true the array slot corresponding to this region.
674 void register_young_region_with_in_cset_fast_test(HeapRegion* r) {
675 _in_cset_fast_test.set_in_young(r->hrm_index());
676 }
677 void register_old_region_with_in_cset_fast_test(HeapRegion* r) {
678 _in_cset_fast_test.set_in_old(r->hrm_index());
679 }
680
681 // This is a fast test on whether a reference points into the
682 // collection set or not. Assume that the reference
683 // points into the heap.
684 inline bool in_cset_fast_test(oop obj);
685
686 void clear_cset_fast_test() {
|
647 inline PLABStats* alloc_buffer_stats(InCSetState dest);
648
649 // Determines PLAB size for a given destination.
650 inline size_t desired_plab_sz(InCSetState dest);
651
652 inline AllocationContextStats& allocation_context_stats();
653
654 // Do anything common to GC's.
655 virtual void gc_prologue(bool full);
656 virtual void gc_epilogue(bool full);
657
658 inline void set_humongous_is_live(oop obj);
659
660 bool humongous_is_live(uint region) {
661 return _humongous_is_live.is_live(region);
662 }
663
664 // Returns whether the given region (which must be a humongous (start) region)
665 // is to be considered conservatively live regardless of any other conditions.
666 bool humongous_region_is_always_live(uint index);
667 // Returns whether the given region (which must be a humongous (start) region)
668 // is considered a candidate for eager reclamation.
669 bool humongous_region_is_candidate(uint index);
670 // Register the given region to be part of the collection set.
671 inline void register_humongous_region_with_in_cset_fast_test(uint index);
672 // Register regions with humongous objects (actually on the start region) in
673 // the in_cset_fast_test table.
674 void register_humongous_regions_with_in_cset_fast_test();
675 // We register a region with the fast "in collection set" test. We
676 // simply set to true the array slot corresponding to this region.
677 void register_young_region_with_in_cset_fast_test(HeapRegion* r) {
678 _in_cset_fast_test.set_in_young(r->hrm_index());
679 }
680 void register_old_region_with_in_cset_fast_test(HeapRegion* r) {
681 _in_cset_fast_test.set_in_old(r->hrm_index());
682 }
683
684 // This is a fast test on whether a reference points into the
685 // collection set or not. Assume that the reference
686 // points into the heap.
687 inline bool in_cset_fast_test(oop obj);
688
689 void clear_cset_fast_test() {
|