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