This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [new-regalloc] Dataflow too slow...
- To: Michael Matz <matzmich at cs dot tu-berlin dot de>
- Subject: Re: [new-regalloc] Dataflow too slow...
- From: Daniel Berlin <dberlin at redhat dot com>
- Date: Sat, 3 Feb 2001 18:32:57 -0500 (EST)
- cc: Daniel Berlin <dberlin at redhat dot com>, Michael Hayes <m dot hayes at elec dot canterbury dot ac dot nz>, Geert Bosch <bosch at gnat dot com>, <gcc at gcc dot gnu dot org>
>
> In order to reach (the best possible) O(N+2) with N == maximal number of
> backedges in a acyclic path, one needs to use reverse completion order
> (the second argument of flow_depth_first_order_compute), _not_ DFS order.
>
Yeah that's I meant, i wrote the wrong thing in the email
The routine looks like this (at this moment, before i add queues)
static int
df_visit_next (df, blocks)
struct df *df ATTRIBUTE_UNUSED;
sbitmap blocks;
{
int i=0;
for (i = 0; i < n_basic_blocks; i++)
if (TEST_BIT (blocks, df->rc_order[i]))
return df->rc_order[i];
return sbitmap_first_set_bit (blocks);
}
> Additionally df.* shouldn't use (s)bitmap's at all for worklists, but
> instead normal arrays as queues.
>
Duh, that's right.
When i'm sick, i forget things.
>
> Ciao,
> Michael.
>