[patch] PR23234 (take 2)

Steven Bosscher stevenb@suse.de
Mon Aug 8 17:32:00 GMT 2005


On Monday 08 August 2005 19:17, Richard Henderson wrote:
> On Mon, Aug 08, 2005 at 12:03:56AM +0200, Steven Bosscher wrote:
> > 	(execute_cse_reciprocals): Add reciprocals for function arguments
> > 	before the last statement of the first basic block.
>
> Update changelog entries when you change patches.

Right.  Sorry about that.

> > +      /* ??? bsi_after_labels doesn't work if there is no label in the
> > +	 basic block, which is the common situation for the first block
> > +	 of a function.  */
> > +      while (!bsi_end_p (bsi) && TREE_CODE (bsi_stmt (bsi)) ==
> > LABEL_EXPR) +	bsi_next (&bsi);
> > +
> > +      for (arg = DECL_ARGUMENTS (cfun->decl); arg; arg = TREE_CHAIN
> > (arg)) +	if (default_def (arg))
> > +          execute_cse_reciprocals_1 (&bsi, default_def (arg), true);
>
> So we're going to rely on loop optimization to move the recip out
> of the loop?  As opposed to insertting the code on the edge from
> the entry block in the first place?

It crossed my mind, but you approved it that way the first time
round, and I didn't feel like changing it.  I thought it would
require calling bsi_commit_edge_inserts, making things slow for
no good reason. But I discovered bsi_commit_one_edge_insert just
now.  I'll create a new patch.

Gr.
Steven



More information about the Gcc-patches mailing list