< prev index next >

src/hotspot/share/gc/parallel/parMarkBitMap.hpp

Print this page
rev 54931 : [mq]: max_size


 121   // Return the number of live words in the range [beg_addr, end_obj) due to
 122   // objects that start in the range.  If a live object extends onto the range,
 123   // the caller must detect and account for any live words due to that object.
 124   // If a live object extends beyond the end of the range, only the words within
 125   // the range are included in the result. The end of the range must be a live object,
 126   // which is the case when updating pointers.  This allows a branch to be removed
 127   // from inside the loop.
 128   size_t live_words_in_range(ParCompactionManager* cm, HeapWord* beg_addr, oop end_obj) const;
 129 
 130   inline HeapWord* region_start() const;
 131   inline HeapWord* region_end() const;
 132   inline size_t    region_size() const;
 133   inline size_t    size() const;
 134 
 135   size_t reserved_byte_size() const { return _reserved_byte_size; }
 136 
 137   // Convert a heap address to/from a bit index.
 138   inline idx_t     addr_to_bit(HeapWord* addr) const;
 139   inline HeapWord* bit_to_addr(idx_t bit) const;
 140 



 141   // Return the bit index of the first marked object that begins (or ends,
 142   // respectively) in the range [beg, end).  If no object is found, return end.

 143   inline idx_t find_obj_beg(idx_t beg, idx_t end) const;
 144   inline idx_t find_obj_end(idx_t beg, idx_t end) const;
 145 
 146   inline HeapWord* find_obj_beg(HeapWord* beg, HeapWord* end) const;
 147   inline HeapWord* find_obj_end(HeapWord* beg, HeapWord* end) const;
 148 
 149   // Clear a range of bits or the entire bitmap (both begin and end bits are
 150   // cleared).
 151   inline void clear_range(idx_t beg, idx_t end);
 152 
 153   // Return the number of bits required to represent the specified number of
 154   // HeapWords, or the specified region.
 155   static inline idx_t bits_required(size_t words);
 156   static inline idx_t bits_required(MemRegion covered_region);
 157 
 158   void print_on_error(outputStream* st) const {
 159     st->print_cr("Marking Bits: (ParMarkBitMap*) " PTR_FORMAT, p2i(this));
 160     _beg_bits.print_on_error(st, " Begin Bits: ");
 161     _end_bits.print_on_error(st, " End Bits:   ");
 162   }




 121   // Return the number of live words in the range [beg_addr, end_obj) due to
 122   // objects that start in the range.  If a live object extends onto the range,
 123   // the caller must detect and account for any live words due to that object.
 124   // If a live object extends beyond the end of the range, only the words within
 125   // the range are included in the result. The end of the range must be a live object,
 126   // which is the case when updating pointers.  This allows a branch to be removed
 127   // from inside the loop.
 128   size_t live_words_in_range(ParCompactionManager* cm, HeapWord* beg_addr, oop end_obj) const;
 129 
 130   inline HeapWord* region_start() const;
 131   inline HeapWord* region_end() const;
 132   inline size_t    region_size() const;
 133   inline size_t    size() const;
 134 
 135   size_t reserved_byte_size() const { return _reserved_byte_size; }
 136 
 137   // Convert a heap address to/from a bit index.
 138   inline idx_t     addr_to_bit(HeapWord* addr) const;
 139   inline HeapWord* bit_to_addr(idx_t bit) const;
 140 
 141   // Return word-aligned up range_end, which must not be greater than size().
 142   inline idx_t align_range_end(idx_t range_end) const;
 143 
 144   // Return the bit index of the first marked object that begins (or ends,
 145   // respectively) in the range [beg, end).  If no object is found, return end.
 146   // end must be word-aligned.
 147   inline idx_t find_obj_beg(idx_t beg, idx_t end) const;
 148   inline idx_t find_obj_end(idx_t beg, idx_t end) const;
 149 
 150   inline HeapWord* find_obj_beg(HeapWord* beg, HeapWord* end) const;
 151   inline HeapWord* find_obj_end(HeapWord* beg, HeapWord* end) const;
 152 
 153   // Clear a range of bits or the entire bitmap (both begin and end bits are
 154   // cleared).
 155   inline void clear_range(idx_t beg, idx_t end);
 156 
 157   // Return the number of bits required to represent the specified number of
 158   // HeapWords, or the specified region.
 159   static inline idx_t bits_required(size_t words);
 160   static inline idx_t bits_required(MemRegion covered_region);
 161 
 162   void print_on_error(outputStream* st) const {
 163     st->print_cr("Marking Bits: (ParMarkBitMap*) " PTR_FORMAT, p2i(this));
 164     _beg_bits.print_on_error(st, " Begin Bits: ");
 165     _end_bits.print_on_error(st, " End Bits:   ");
 166   }


< prev index next >