This is the mail archive of the 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][RFC] Move IVOPTs closer to RTL expansion

On 09/10/2013 02:00 AM, Richard Biener wrote:
On Mon, 9 Sep 2013, Steven Bosscher wrote:

On Mon, Sep 9, 2013 at 10:01 AM, Richard Biener wrote:
First, the loop passes that at the moment preceede IVOPTs leave
around IL that is in desparate need of basic re-optimization
like CSE, constant propagation and DCE.  That puts extra load
on IVOPTs and its cost model, increasing compile-time and
possibly confusing it.

So why not just run DCE and DOM just before IVOPTs?

Another DCE and DOM?  The patch moving IVOPTs just moves it
after the existing DOM (right before the last DCE).

The question is whether we want to pay the compile-time penalty
of not making passes deal with dead code, existing full redundancies,
not constaint/copy-propagated IL, etc. by inserting these
passes over and over in random places.  Of course CSE (being it
DOM or FRE) are not exactly cheap.
Also note, dealing with dead code is simply not possible right now in some passes due to lameness in our SSA_NAME interface.

In particular if a pass wants to remove SSA_NAMEs (releasing them back to the name manager), it must remove all references to those names in the IL stream.

Failure to do so will trigger problems if that pass also tries to create SSA_NAMEs.

Fixing this would allow certain passes (DOM in particular) to clean up better after itself rather than wait for cleanup_cfg and friends.


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