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] Fix PR18754: add early loop pass, 2nd try


Hello,

> >>(Richard Guenther wrote in
> >>http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01308.html:)
> >>
> >>>I did experiments with scheduling a second SRA pass after
> >>>loop optimization, but that doesn't help ivopts - we'd need
> >>>another loop pass after the second SRA this way.
> >>
> >>Maybe adding this extra ivopts pass isn't that bad? If that would allow
> >>scheduling vectorization then loop-unrolling then SRA I think that would 
> >>be
> >>best.
> >
> >
> >extra ivopts pass is not a good idea (ivopts are quite slow just now).
> >
> >The right fix seems to be to add the second SRA pass in the middle of loop
> >optimizations (just immediately after cunroll).  You would also need to
> >schedule constant propagation pass there (which should just work)
> >and preferably also cfg_cleanup (the variation from tcb branch that
> >preserves loop structures).
> 
> Yes, I tried this - actually just adding SRA and redphi after cunroll, 
> but this caused verify failures about not the right ssa form or so.  So 
> I guessed SRA may be not ready to preserve invariants the loop 
> optimizers need.

you probably need to rerun the loop closed ssa form creation afterwards
(rewrite_into_loop_closed_ssa).

Zdenek


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