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


> Hello,
> 
> > > the patch below is cleanup of flow.c; it splits more or less unrelated
> > > tasks (log links creation, pre/post modify transformation, ...) out
> > > of liveness analysis.
> > >
> > > This results in more passes though insns and significant slow down of
> > > compiler (about 20%). To counter this, I extract the neccesary
> > > information about insn (set and used registers, ...) and recompute this
> > > information only if the insn changes.
> > 
> > I am dubious about storing this information in a lookaside table.  It
> > appears to be used by many passes; it seems to me that it is properly
> > part of the RTL.
> 
> If you prefer, I may attach it as a note to the insn. I did not because
> it would appear in debug dumps that I wanted to keep identical (to
> make it easier to find errors I introduced).
> 
> > 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.
Did you take a look at the df.c infrastructure?  It basically has
functions to set up the lists of sets and uses of registers/memories in
the insn.  What else do you need?
These are also not attached directly to RTL.  I've discussed that idea
in the past and it appears to be bad idea, as this way we can share the
info with trees.

Honza
> 
> Zdenek


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