82 #define SBITMAP_ELT_BITS (HOST_BITS_PER_WIDEST_FAST_INT * 1u)
83 #define SBITMAP_ELT_TYPE unsigned HOST_WIDEST_FAST_INT
94 #define SBITMAP_SET_SIZE(N) (((N) + SBITMAP_ELT_BITS - 1) / SBITMAP_ELT_BITS)
97 #define SBITMAP_SIZE(BITMAP) ((BITMAP)->n_bits)
100 static inline SBITMAP_ELT_TYPE
103 size_t i = bitno / SBITMAP_ELT_BITS;
104 unsigned int s = bitno % SBITMAP_ELT_BITS;
105 return (map->
elms[i] >> s) & (SBITMAP_ELT_TYPE) 1;
113 gcc_checking_assert (! map->
popcount);
114 map->
elms[bitno / SBITMAP_ELT_BITS]
115 |= (SBITMAP_ELT_TYPE) 1 << (bitno) % SBITMAP_ELT_BITS;
123 gcc_checking_assert (! map->
popcount);
124 map->
elms[bitno / SBITMAP_ELT_BITS]
125 &= ~((SBITMAP_ELT_TYPE) 1 << (bitno) % SBITMAP_ELT_BITS);
131 const SBITMAP_ELT_TYPE *ptr;
137 unsigned int word_num;
140 unsigned int bit_num;
143 SBITMAP_ELT_TYPE word;
151 unsigned int min,
unsigned *bit_no ATTRIBUTE_UNUSED)
153 i->
word_num = min / (
unsigned int) SBITMAP_ELT_BITS;
162 >> (i->
bit_num % (
unsigned int) SBITMAP_ELT_BITS));
206 #ifndef EXECUTE_IF_SET_IN_BITMAP
208 #define EXECUTE_IF_SET_IN_BITMAP(BITMAP, MIN, BITNUM, ITER) \
209 for (bmp_iter_set_init (&(ITER), (BITMAP), (MIN), &(BITNUM)); \
210 bmp_iter_set (&(ITER), &(BITNUM)); \
211 bmp_iter_next (&(ITER), &(BITNUM)))