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: [PATCH] flow.c cleanup


> Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> writes:
> 
> >> 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.

Honza
> 
> zw


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