This is the mail archive of the gcc@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: [RFC] third liveness pass


> > 
> > How can we, when the local property is dependent on which
> > insns are deleted as dead code?
> 
> Andreas just benchmarked the attached patch to disable dead store
> removal when not explicitly asked for (and we do that twice now).
> It looks like the dead store removal is by far the most expensive part
> of flow, so the attached patch cuts bootstrap time by about 1%.

Hmm, forgot to mention the important bit.  The binarries of SPEC didn't
changed before and after the patch except for crafty that got, for some
purpose, smaller.
So re-running the alias analysis and dead store removal each time
liveness is updated is just waste of time I believe.

I think we can do it twice, once in early liveness and once post-reload
to get almost all of the benefits.  That should make the costs of early
liveness smaller and our decision easier.

Perhaps it can be better also to implement dead store removal more
properly, but I am not at all sure whether proper liveness analysis for
memory is affordable in resonable time. At least it can be interesting
to extend it into acyclic graphs (reverse extended basic blocks), but
that would probably require to split out the dead store removal from
flow module to avoid overcomplicating of the whole beast.

Honza


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