This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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~