[PATCH] flow.c cleanup

Zdenek Dvorak rakdver@atrey.karlin.mff.cuni.cz
Mon Dec 30 10:20:00 GMT 2002


Hello,

> > >> It also seems to me that it duplicates existing
> > >> functionality, i.e. the EXPR_LIST and INSN_LIST chains that some
> > >> passes attach to RTL.  Could you please look into using the existing
> > >> data and/or augmenting it to serve this purpose?
> > >
> > > there is probably some overlap with other structures used elsewhere in
> > > the compiler (surely somewhere in df.c must be something simmilar). But
> > > the structure I use is directly derived from functioning of flow.c and
> > > it would be hard to use other structure for this purpose.
> > 
> > It concerns me that we have a proliferation of similar data
> > structures.  I think it would be a good idea to sweep through the
> > entire series of RTL optimizer passes and try to get them all using
> > the same data-flow annotations.
> 
> I was thinking about organizing the local RTL passes in different way -
> instead of function that does linear pass trought function doing
> something on each insn, do standarized interface (probably three
> functions - start bb, process insn, finish).
> Then we can have one "superpass" that will do as many local passes in
> parallel as we want to.  That way we can do local copy proprying, local
> CSE, half of dead code removal and similar by single pass that can
> significantly speed up the compiler by reducing amount of data cache
> traps.  It may not...
> Many of our passes can be directly reorganized into this scheme.

I don't think it is a good idea. I guess you would run into lot of
troubles with passes interacting with each other, especially if they
needed to alter some surroundings of current insn.

Zdenek



More information about the Gcc-patches mailing list