bitmap.c (bitmap_find_bit): Speed up by traversing from head->first if that seems profitable.
* bitmap.c (bitmap_find_bit): Speed up by traversing from head->first if that seems profitable. From-SVN: r91335
This commit is contained in:
parent
6a66a8a7a2
commit
3aeee1b434
|
@ -3,6 +3,9 @@
|
|||
* cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
|
||||
check that tests if all edges go to the same destination.
|
||||
|
||||
* bitmap.c (bitmap_find_bit): Speed up by traversing from
|
||||
head->first if that seems profitable.
|
||||
|
||||
2004-11-25 Jeff Law <law@redhat.com>
|
||||
|
||||
* timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
|
||||
|
|
16
gcc/bitmap.c
16
gcc/bitmap.c
|
@ -401,14 +401,26 @@ bitmap_find_bit (bitmap head, unsigned int bit)
|
|||
|| head->indx == indx)
|
||||
return head->current;
|
||||
|
||||
if (head->indx > indx)
|
||||
if (head->indx < indx)
|
||||
/* INDX is beyond head->indx. Search from head->current
|
||||
forward. */
|
||||
for (element = head->current;
|
||||
element->next != 0 && element->indx < indx;
|
||||
element = element->next)
|
||||
;
|
||||
|
||||
else if (head->indx / 2 < indx)
|
||||
/* INDX is less than head->indx and closer to head->indx than to
|
||||
0. Search from head->current backward. */
|
||||
for (element = head->current;
|
||||
element->prev != 0 && element->indx > indx;
|
||||
element = element->prev)
|
||||
;
|
||||
|
||||
else
|
||||
for (element = head->current;
|
||||
/* INDX is less than head->indx and closer to 0 than to
|
||||
head->indx. Search from head->first forward. */
|
||||
for (element = head->first;
|
||||
element->next != 0 && element->indx < indx;
|
||||
element = element->next)
|
||||
;
|
||||
|
|
Loading…
Reference in New Issue