RFA: patch for usage of more accurate live information for the global and the reload.

Richard Henderson rth@redhat.com
Mon May 24 05:40:00 GMT 2004


On Mon, May 17, 2004 at 02:20:59PM -0400, Vladimir Makarov wrote:
> +   FOR_EACH_BB (bb)
> +     {
> +       bb->aux = bb_info = xmalloc (sizeof (struct bb_info));

Consider using alloc_aux_for_block(s).

> +       for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
> + 	{
> + 	  bitmap_set_bit (bb_info->pavin, i);
> + 	  bitmap_set_bit (bb_info->pavout, i);
> + 	}

You're computing the same set for each block.  Consider filling in
the bits just once and copying the set for each instance.

> + static void
> + forward_propagate_solution (bool (*eq) (basic_block, basic_block, bool))

This is called once; why pass the eq function?

> +   VARRAY_BB_INIT (new_bbs, 1000, "basic blocks for the next iter.");
> +   FOR_EACH_BB (bb)
> +     {
> +       VARRAY_PUSH_BB (bbs, bb);
> +     }

Inefficient when number of basic blocks > 1000.  You know exactly
how many blocks there are to begin.

All the actual algorithm bits look good.


r~



More information about the Gcc-patches mailing list