This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: improvement to if-conversion


On Fri, Jan 30, 2004 at 01:20:40PM +0000, Joern Rennecke wrote:
> Looking for matching outgoing edges instead of linear control flow
> merge could improve if-conversion in general.

Matching edges is the if_case_N routines, as opposed to 
the noce_* routines.

> The cross-jumping code has no need to keep track of an input register.
> I don't know if it would benefit from tracking of equivalent local
> registers.  Would the added overhead in cross-jumping be acceptable?

*shrug* depends on how much, I guess.  Of course, if you find such
a sequence that does depend on input registers, cross-jump could 
certainly make use -- emit one move before the jump.  It'd be a
true size improvement over what we currently have.

> What would be the right home for a basic block structual comparison
> function used by if-convert and cross-jumping?  rtlanal.c ?  cfgrtl.c?

Dunno.  It might deserve it's own file.

> I think full register liveness information would be harder to keep
> up-to-date as if conversion progresses.

I think that global_live_at_start/end are kept up-to-date.  Leastwise,
I'd be interested to know how badly they're off.  We re-run life info
at the end, but that's to get death notes inserted properly.



r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]