calculate_global_regs_live

Jim Wilson wilson@specifixinc.com
Fri Dec 19 11:21:00 GMT 2003


On Wed, 2003-12-17 at 10:47, Eric Botcazou wrote:
> I think the situation is rather messy:

It does sound a bit messy.

I tried looking at callers of update_life_info.  It looks like most of
them already pass all blocks when extent != UPDATE_LIFE_LOCAL. 
Exceptions:
  cfgrtl.c purge_all_dead_edges
  recog.c split_all_insns
  sched-rgn.c schedule_insns
Since the majority already do this, I suspect the run time performance
won't be impacted too much if we assume this.

There is a particularly interesting bit in flow.c in the function
update_life_info_in_dirty_blocks.  If called with a subset of blocks,
and extent is not UPDATE_LIFE_LOCAL, then it already adds in all
blocks.  There is a comment that says this was needed to fix a pentium4
bootstrap failure.  So again, it seems someone ran into a related
problem.  And not surprisingly, it was Richard Henderson again.  See
	http://gcc.gnu.org/ml/gcc-patches/2002-05/msg02253.html
This message refers to suggestions from Jan to solve the problem you are
looking into.  Maybe you can find them on the mailing list archive?  Or
maybe Jan remembers?
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc mailing list