Message ID | 20100609185612.GA1735@kam.mff.cuni.cz |
---|---|
State | New |
Headers | show |
On Wed, Jun 9, 2010 at 8:56 PM, Jan Hubicka <hubicka@ucw.cz> wrote: > Hi, > bitmap.c constains quite few asserts, some in internal loops that checks > consistency of the datastructure itself. I turned into checking assert > all of them that are not guarding operation on the whole bitmap. > (i.e. keeping asserts checking that bitmap_and is not used with destination > being same as sources and some more global checks). > I think the second might go away too, but they are not important. > In fact only ones I care about are those in bitmap_elt* functions > that are tripped over every time we handle new bitmap page. > > Bootstrapped/regtested x86_64-linux, OK? Ok. Thanks, Richard. > Honza > > * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit, > bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit, > bitmap_and_into, bitmap_and_compl_into, bitmap_set_range, > bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts; > merge multiple asserts into single. > Index: bitmap.c > =================================================================== > --- bitmap.c (revision 160502) > +++ bitmap.c (working copy) > @@ -499,7 +499,7 @@ bitmap_elt_insert_after (bitmap head, bi > } > else > { > - gcc_assert (head->current); > + gcc_checking_assert (head->current); > node->next = elt->next; > if (node->next) > node->next->prev = node; > @@ -780,7 +780,7 @@ bitmap_first_set_bit (const_bitmap a) > BITMAP_WORD word; > unsigned ix; > > - gcc_assert (elt); > + gcc_checking_assert (elt); > bit_no = elt->indx * BITMAP_ELEMENT_ALL_BITS; > for (ix = 0; ix != BITMAP_ELEMENT_WORDS; ix++) > { > @@ -815,7 +815,7 @@ bitmap_first_set_bit (const_bitmap a) > if (!(word & 0x1)) > word >>= 1, bit_no += 1; > > - gcc_assert (word & 1); > + gcc_checking_assert (word & 1); > #endif > return bit_no; > } > @@ -831,7 +831,7 @@ bitmap_last_set_bit (const_bitmap a) > BITMAP_WORD word; > int ix; > > - gcc_assert (elt); > + gcc_checking_assert (elt); > while (elt->next) > elt = elt->next; > bit_no = elt->indx * BITMAP_ELEMENT_ALL_BITS; > @@ -869,7 +869,7 @@ bitmap_last_set_bit (const_bitmap a) > word >>= 1, bit_no += 1; > #endif > > - gcc_assert (word & 1); > + gcc_checking_assert (word & 1); > return bit_no; > } > > @@ -975,8 +975,8 @@ bitmap_and_into (bitmap a, const_bitmap > } > } > bitmap_elt_clear_from (a, a_elt); > - gcc_assert (!a->current == !a->first); > - gcc_assert (!a->current || a->indx == a->current->indx); > + gcc_assert (!a->current == !a->first > + && (!a->current || a->indx == a->current->indx)); > } > > > @@ -1175,8 +1175,8 @@ bitmap_and_compl_into (bitmap a, const_b > b_elt = b_elt->next; > } > } > - gcc_assert (!a->current == !a->first); > - gcc_assert (!a->current || a->indx == a->current->indx); > + gcc_assert (!a->current == !a->first > + && (!a->current || a->indx == a->current->indx)); > return changed != 0; > } > > @@ -1207,7 +1207,7 @@ bitmap_set_range (bitmap head, unsigned > bitmap_element_link (head, elt); > } > > - gcc_assert (elt->indx == first_index); > + gcc_checking_assert (elt->indx == first_index); > elt_prev = elt->prev; > for (i = first_index; i <= last_index; i++) > { > @@ -1470,8 +1470,8 @@ bitmap_compl_and_into (bitmap a, const_b > b_elt = b_elt->next; > } > } > - gcc_assert (!a->current == !a->first); > - gcc_assert (!a->current || a->indx == a->current->indx); > + gcc_assert (!a->current == !a->first > + && (!a->current || a->indx == a->current->indx)); > return; > } > > @@ -1528,7 +1535,7 @@ bitmap_elt_ior (bitmap dst, bitmap_eleme > else > src = b_elt; > > - gcc_assert (src); > + gcc_checking_assert (src); > changed = bitmap_elt_copy (dst, dst_elt, dst_prev, src, changed); > } > return changed; >
Index: bitmap.c =================================================================== --- bitmap.c (revision 160502) +++ bitmap.c (working copy) @@ -499,7 +499,7 @@ bitmap_elt_insert_after (bitmap head, bi } else { - gcc_assert (head->current); + gcc_checking_assert (head->current); node->next = elt->next; if (node->next) node->next->prev = node; @@ -780,7 +780,7 @@ bitmap_first_set_bit (const_bitmap a) BITMAP_WORD word; unsigned ix; - gcc_assert (elt); + gcc_checking_assert (elt); bit_no = elt->indx * BITMAP_ELEMENT_ALL_BITS; for (ix = 0; ix != BITMAP_ELEMENT_WORDS; ix++) { @@ -815,7 +815,7 @@ bitmap_first_set_bit (const_bitmap a) if (!(word & 0x1)) word >>= 1, bit_no += 1; - gcc_assert (word & 1); + gcc_checking_assert (word & 1); #endif return bit_no; } @@ -831,7 +831,7 @@ bitmap_last_set_bit (const_bitmap a) BITMAP_WORD word; int ix; - gcc_assert (elt); + gcc_checking_assert (elt); while (elt->next) elt = elt->next; bit_no = elt->indx * BITMAP_ELEMENT_ALL_BITS; @@ -869,7 +869,7 @@ bitmap_last_set_bit (const_bitmap a) word >>= 1, bit_no += 1; #endif - gcc_assert (word & 1); + gcc_checking_assert (word & 1); return bit_no; } @@ -975,8 +975,8 @@ bitmap_and_into (bitmap a, const_bitmap } } bitmap_elt_clear_from (a, a_elt); - gcc_assert (!a->current == !a->first); - gcc_assert (!a->current || a->indx == a->current->indx); + gcc_assert (!a->current == !a->first + && (!a->current || a->indx == a->current->indx)); } @@ -1175,8 +1175,8 @@ bitmap_and_compl_into (bitmap a, const_b b_elt = b_elt->next; } } - gcc_assert (!a->current == !a->first); - gcc_assert (!a->current || a->indx == a->current->indx); + gcc_assert (!a->current == !a->first + && (!a->current || a->indx == a->current->indx)); return changed != 0; } @@ -1207,7 +1207,7 @@ bitmap_set_range (bitmap head, unsigned bitmap_element_link (head, elt); } - gcc_assert (elt->indx == first_index); + gcc_checking_assert (elt->indx == first_index); elt_prev = elt->prev; for (i = first_index; i <= last_index; i++) { @@ -1470,8 +1470,8 @@ bitmap_compl_and_into (bitmap a, const_b b_elt = b_elt->next; } } - gcc_assert (!a->current == !a->first); - gcc_assert (!a->current || a->indx == a->current->indx); + gcc_assert (!a->current == !a->first + && (!a->current || a->indx == a->current->indx)); return; } @@ -1528,7 +1535,7 @@ bitmap_elt_ior (bitmap dst, bitmap_eleme else src = b_elt; - gcc_assert (src); + gcc_checking_assert (src); changed = bitmap_elt_copy (dst, dst_elt, dst_prev, src, changed); } return changed;