659 }
660
661 // Determines PLAB size for a particular allocation purpose.
662 size_t desired_plab_sz(GCAllocPurpose purpose);
663
664 inline AllocationContextStats& allocation_context_stats();
665
666 // Do anything common to GC's.
667 virtual void gc_prologue(bool full);
668 virtual void gc_epilogue(bool full);
669
670 inline void set_humongous_is_live(oop obj);
671
672 bool humongous_is_live(uint region) {
673 return _humongous_is_live.is_live(region);
674 }
675
676 // Returns whether the given region (which must be a humongous (start) region)
677 // is to be considered conservatively live regardless of any other conditions.
678 bool humongous_region_is_always_live(uint index);
679 // Register the given region to be part of the collection set.
680 inline void register_humongous_region_with_in_cset_fast_test(uint index);
681 // Register regions with humongous objects (actually on the start region) in
682 // the in_cset_fast_test table.
683 void register_humongous_regions_with_in_cset_fast_test();
684 // We register a region with the fast "in collection set" test. We
685 // simply set to true the array slot corresponding to this region.
686 void register_region_with_in_cset_fast_test(HeapRegion* r) {
687 _in_cset_fast_test.set_in_cset(r->hrm_index());
688 }
689
690 // This is a fast test on whether a reference points into the
691 // collection set or not. Assume that the reference
692 // points into the heap.
693 inline bool in_cset_fast_test(oop obj);
694
695 void clear_cset_fast_test() {
696 _in_cset_fast_test.clear();
697 }
698
|
659 }
660
661 // Determines PLAB size for a particular allocation purpose.
662 size_t desired_plab_sz(GCAllocPurpose purpose);
663
664 inline AllocationContextStats& allocation_context_stats();
665
666 // Do anything common to GC's.
667 virtual void gc_prologue(bool full);
668 virtual void gc_epilogue(bool full);
669
670 inline void set_humongous_is_live(oop obj);
671
672 bool humongous_is_live(uint region) {
673 return _humongous_is_live.is_live(region);
674 }
675
676 // Returns whether the given region (which must be a humongous (start) region)
677 // is to be considered conservatively live regardless of any other conditions.
678 bool humongous_region_is_always_live(uint index);
679 // Returns whether the given region (which must be a humongous (start) region)
680 // is considered a candidate for eager reclamation.
681 bool humongous_region_is_candidate(uint index);
682 // Register the given region to be part of the collection set.
683 inline void register_humongous_region_with_in_cset_fast_test(uint index);
684 // Register regions with humongous objects (actually on the start region) in
685 // the in_cset_fast_test table.
686 void register_humongous_regions_with_in_cset_fast_test();
687 // We register a region with the fast "in collection set" test. We
688 // simply set to true the array slot corresponding to this region.
689 void register_region_with_in_cset_fast_test(HeapRegion* r) {
690 _in_cset_fast_test.set_in_cset(r->hrm_index());
691 }
692
693 // This is a fast test on whether a reference points into the
694 // collection set or not. Assume that the reference
695 // points into the heap.
696 inline bool in_cset_fast_test(oop obj);
697
698 void clear_cset_fast_test() {
699 _in_cset_fast_test.clear();
700 }
701
|