[PATCH][RFC] Fix DF sub-CFG analysis slowness (PR39326)

Richard Biener rguenther@suse.de
Wed Jan 15 12:53:00 GMT 2014


On Wed, 15 Jan 2014, Steven Bosscher wrote:

> On Wed, Jan 15, 2014 at 11:52 AM, Richard Biener wrote:
> > I can split off a df_analyze_1 and have a df_analyze () doing what
> > it does now and a df_analyze_loop () combining df_set_blocks ()
> > and df_analyze () for example.
> 
> df_analyze_loop sounds good to me.
> 
> But shouldn't it be possible to avoid the re-computation of the
> pre/postorders? If the CFG hasn't changed, the orders also haven't
> changed. It should be possible to communicate that to DF from the CFG
> hooks somehow.

But in these cases it doesn't really help as the pre/postorders
are pruned to the sub-CFG (so they are lost).  But yeah, with
more refactoring in this area this could be improved.

> AFAIR loop-invariant.c doesn't modify the CFG (and if it does then
> it's easily avoided) and RTL loop unswitching should just go away.

Right.  Even better would be if loop-invariant.c could keep the
DF info up-to-date.  After all it just moves stmts and seems to
be interested in UD chains only ... (which shouldn't change at all?)

Richard.



More information about the Gcc-patches mailing list