836 return _MARKING_VERBOSE_ && _verbose_level >= high_verbose;
837 }
838
839 // Liveness counting
840
841 // Utility routine to set an exclusive range of cards on the given
842 // card liveness bitmap
843 inline void set_card_bitmap_range(BitMap* card_bm,
844 BitMap::idx_t start_idx,
845 BitMap::idx_t end_idx,
846 bool is_par);
847
848 // Returns the card number of the bottom of the G1 heap.
849 // Used in biasing indices into accounting card bitmaps.
850 intptr_t heap_bottom_card_num() const {
851 return _heap_bottom_card_num;
852 }
853
854 // Returns the card bitmap for a given task or worker id.
855 BitMap* count_card_bitmap_for(uint worker_id) {
856 assert(0 <= worker_id && worker_id < _max_worker_id, "oob");
857 assert(_count_card_bitmaps != NULL, "uninitialized");
858 BitMap* task_card_bm = &_count_card_bitmaps[worker_id];
859 assert(task_card_bm->size() == _card_bm.size(), "size mismatch");
860 return task_card_bm;
861 }
862
863 // Returns the array containing the marked bytes for each region,
864 // for the given worker or task id.
865 size_t* count_marked_bytes_array_for(uint worker_id) {
866 assert(0 <= worker_id && worker_id < _max_worker_id, "oob");
867 assert(_count_marked_bytes != NULL, "uninitialized");
868 size_t* marked_bytes_array = _count_marked_bytes[worker_id];
869 assert(marked_bytes_array != NULL, "uninitialized");
870 return marked_bytes_array;
871 }
872
873 // Returns the index in the liveness accounting card table bitmap
874 // for the given address
875 inline BitMap::idx_t card_bitmap_index_for(HeapWord* addr);
876
877 // Counts the size of the given memory region in the the given
878 // marked_bytes array slot for the given HeapRegion.
879 // Sets the bits in the given card bitmap that are associated with the
880 // cards that are spanned by the memory region.
881 inline void count_region(MemRegion mr,
882 HeapRegion* hr,
883 size_t* marked_bytes_array,
884 BitMap* task_card_bm);
885
886 // Counts the given memory region in the task/worker counting
|
836 return _MARKING_VERBOSE_ && _verbose_level >= high_verbose;
837 }
838
839 // Liveness counting
840
841 // Utility routine to set an exclusive range of cards on the given
842 // card liveness bitmap
843 inline void set_card_bitmap_range(BitMap* card_bm,
844 BitMap::idx_t start_idx,
845 BitMap::idx_t end_idx,
846 bool is_par);
847
848 // Returns the card number of the bottom of the G1 heap.
849 // Used in biasing indices into accounting card bitmaps.
850 intptr_t heap_bottom_card_num() const {
851 return _heap_bottom_card_num;
852 }
853
854 // Returns the card bitmap for a given task or worker id.
855 BitMap* count_card_bitmap_for(uint worker_id) {
856 assert(worker_id < _max_worker_id, "oob");
857 assert(_count_card_bitmaps != NULL, "uninitialized");
858 BitMap* task_card_bm = &_count_card_bitmaps[worker_id];
859 assert(task_card_bm->size() == _card_bm.size(), "size mismatch");
860 return task_card_bm;
861 }
862
863 // Returns the array containing the marked bytes for each region,
864 // for the given worker or task id.
865 size_t* count_marked_bytes_array_for(uint worker_id) {
866 assert(worker_id < _max_worker_id, "oob");
867 assert(_count_marked_bytes != NULL, "uninitialized");
868 size_t* marked_bytes_array = _count_marked_bytes[worker_id];
869 assert(marked_bytes_array != NULL, "uninitialized");
870 return marked_bytes_array;
871 }
872
873 // Returns the index in the liveness accounting card table bitmap
874 // for the given address
875 inline BitMap::idx_t card_bitmap_index_for(HeapWord* addr);
876
877 // Counts the size of the given memory region in the the given
878 // marked_bytes array slot for the given HeapRegion.
879 // Sets the bits in the given card bitmap that are associated with the
880 // cards that are spanned by the memory region.
881 inline void count_region(MemRegion mr,
882 HeapRegion* hr,
883 size_t* marked_bytes_array,
884 BitMap* task_card_bm);
885
886 // Counts the given memory region in the task/worker counting
|