Lines Matching refs:idx_t

41   typedef size_t idx_t;         // Type used for bit and word indices.
53 idx_t _size; // Size of bitmap (in bits)
57 void at_put_grow(idx_t index, bool value);
62 static idx_t bit_in_word(idx_t bit) { return bit & (BitsPerWord - 1); }
66 static bm_word_t bit_mask(idx_t bit) { return (bm_word_t)1 << bit_in_word(bit); }
69 static idx_t word_index(idx_t bit) { return bit >> LogBitsPerWord; }
72 static idx_t bit_index(idx_t word) { return word << LogBitsPerWord; }
76 bm_word_t map(idx_t word) const { return _map[word]; }
79 bm_word_t* word_addr(idx_t bit) const { return map() + word_index(bit); }
82 void set_word (idx_t word, bm_word_t val) { _map[word] = val; }
83 void set_word (idx_t word) { set_word(word, ~(uintptr_t)0); }
84 void clear_word(idx_t word) { _map[word] = 0; }
89 bm_word_t inverted_bit_mask_for_range(idx_t beg, idx_t end) const;
90 void set_range_within_word (idx_t beg, idx_t end);
91 void clear_range_within_word (idx_t beg, idx_t end);
92 void par_put_range_within_word (idx_t beg, idx_t end, bool value);
95 void set_range_of_words (idx_t beg, idx_t end);
96 void clear_range_of_words (idx_t beg, idx_t end);
97 void set_large_range_of_words (idx_t beg, idx_t end);
98 void clear_large_range_of_words (idx_t beg, idx_t end);
101 idx_t word_index_round_up(idx_t bit) const;
104 inline void verify_index(idx_t index) const NOT_DEBUG_RETURN;
105 inline void verify_range(idx_t beg_index, idx_t end_index) const
109 static idx_t* _pop_count_table;
111 static idx_t num_set_bits(bm_word_t w);
112 static idx_t num_set_bits_from_table(unsigned char c);
120 BitMap(bm_word_t* map, idx_t size_in_bits);
125 BitMap(idx_t size_in_bits, bool in_resource_area = true);
129 void set_size(idx_t size_in_bits) { _size = size_in_bits; }
138 void resize(idx_t size_in_bits, bool in_resource_area = true);
141 idx_t size() const { return _size; }
142 idx_t size_in_words() const {
146 bool at(idx_t index) const {
153 static idx_t word_align_up(idx_t bit) {
156 static idx_t word_align_down(idx_t bit) {
159 static bool is_word_aligned(idx_t bit) {
164 inline void set_bit(idx_t bit);
165 inline void clear_bit(idx_t bit);
168 inline bool par_set_bit(idx_t bit);
169 inline bool par_clear_bit(idx_t bit);
175 void at_put(idx_t index, bool value);
176 bool par_at_put(idx_t index, bool value);
179 void set_range (idx_t beg, idx_t end);
180 void clear_range (idx_t beg, idx_t end);
181 void set_large_range (idx_t beg, idx_t end);
182 void clear_large_range (idx_t beg, idx_t end);
183 void at_put_range(idx_t beg, idx_t end, bool value);
184 void par_at_put_range(idx_t beg, idx_t end, bool value);
185 void at_put_large_range(idx_t beg, idx_t end, bool value);
186 void par_at_put_large_range(idx_t beg, idx_t end, bool value);
191 void set_range(idx_t beg, idx_t end, RangeSizeHint hint);
192 void clear_range(idx_t beg, idx_t end, RangeSizeHint hint);
193 void par_set_range(idx_t beg, idx_t end, RangeSizeHint hint);
194 void par_clear_range (idx_t beg, idx_t end, RangeSizeHint hint);
203 bool iterate(BitMapClosure* blk, idx_t leftIndex, idx_t rightIndex);
212 idx_t get_next_one_offset_inline (idx_t l_index, idx_t r_index) const;
213 idx_t get_next_zero_offset_inline(idx_t l_index, idx_t r_index) const;
217 idx_t get_next_one_offset_inline_aligned_right(idx_t l_index,
218 idx_t r_index) const;
221 idx_t get_next_one_offset (idx_t l_index, idx_t r_index) const;
222 idx_t get_next_zero_offset(idx_t l_index, idx_t r_index) const;
224 idx_t get_next_one_offset(idx_t offset) const {
227 idx_t get_next_zero_offset(idx_t offset) const {
232 idx_t count_one_bits() const;
256 void set_intersection_at_offset(BitMap bits, idx_t offset);
277 typedef BitMap::idx_t idx_t; // Type used for bit and word indices.
282 idx_t _bits_per_slot;
284 idx_t bit_index(idx_t slot_index, idx_t bit_within_slot_index) const {
288 void verify_bit_within_slot_index(idx_t index) const {
294 BitMap2D(bm_word_t* map, idx_t size_in_slots, idx_t bits_per_slot);
297 BitMap2D(idx_t size_in_slots, idx_t bits_per_slot);
299 idx_t size_in_bits() {
304 idx_t size_in_slots() {
309 bool is_valid_index(idx_t slot_index, idx_t bit_within_slot_index) {
314 bool at(idx_t slot_index, idx_t bit_within_slot_index) const {
319 void set_bit(idx_t slot_index, idx_t bit_within_slot_index) {
324 void clear_bit(idx_t slot_index, idx_t bit_within_slot_index) {
329 void at_put(idx_t slot_index, idx_t bit_within_slot_index, bool value) {
334 void at_put_grow(idx_t slot_index, idx_t bit_within_slot_index, bool value) {
348 virtual bool do_bit(BitMap::idx_t offset) = 0;