This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR18754: add early loop pass, 2nd try
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>
- Cc: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>, Giovanni Bajo <giovannibajo at libero dot it>, gcc-patches at gcc dot gnu dot org
- Date: Fri, 21 Jan 2005 10:37:50 -0500
- Subject: Re: [PATCH] Fix PR18754: add early loop pass, 2nd try
- References: <Pine.LNX.4.44.0501211557520.16464-100000@alwazn.tat.physik.uni-tuebingen.de>
On Fri, 2005-01-21 at 16:04 +0100, Richard Guenther wrote:
> On Fri, 21 Jan 2005, Daniel Berlin wrote:
>
> >
> >
> > rename_ssa_copies coalesces ssa variables, not renaming.
> > Since you don't have a valid ssa form at that point, it can't possibly
> > work right :)
> >
> > Call rewrite_into_ssa (false);
>
> Ah ok, yes, that fixes the ICE. Now I still do not get ivopts
> to optimize the sra'ed stuff, and sra doesn't catch all stuff it
> could.
Again, the SRA part is something that will be taken care of by the
structure-aliasing stuff (you'll have to rerun "overlap variable"
creation)
It will tell the optimizers that each portion of array is really
accessing a different place, and the optimizers will do what they can.
SRA is really an optimization geared towards breaking apart things that
should go into registers. The fact that it happens to help our
optimizers is just a side-effect of this.
As for dom, you can run FRE instead if you are just trying to get
redundancy elimination.
(NEXT_PASS (pass_fre))
It shouldn't destroy data structures.
Also, CCP depends on DCE to kill the dead statements.
With the TCB branch, you should be able to run DCE in the middle of loop
opts (my goal was to be able to run FRE + ccp + DCE after linear loop
transforms)