This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][RFT] Optimization pass-pipeline re-organization [3/n]
- From: Richard Guenther <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: gcc at gcc dot gnu dot org
- Date: Sat, 16 Aug 2008 21:14:51 +0200 (CEST)
- Subject: Re: [PATCH][RFT] Optimization pass-pipeline re-organization [3/n]
- References: <alpine.LNX.1.10.0808151554220.3427@zhemvz.fhfr.qr>
On Fri, 15 Aug 2008, Richard Guenther wrote:
>
> This is the third patch in the series of optimizing the pass-pipeline,
> it applies on top of [1/n]. Cross-posted again to hint people to test
> this on their favorite apps.
>
> Like moving CCP before the initial alias computation is beneficial this
> patch moves the first forwprop pass after alias computation before it.
> This again should increase the precision of the first alias pass somewhat.
>
> The second DCE pass right after FRE is somewhat misplaced
> (with the above change we now would run FRE, DCE, copy-prop,
> merge-phi, vrp, DCE). copy-prop doesn't benefit from DCE and
> while copy-prop exposes DCE opportunities the propagator engine
> already removes trivially dead statements. Removing this DCE
> pass completely doesn't show any negative effects on tramp3d statistics,
> in particular VRP is unaffected.
>
>
> The most interesting pass change is the removal of the first
> DOM/phi-cprop pair. DOM mostly deals with jump-threading at this
> place and for tramp3d catches 473 threads on top of the 2555 ones
> performed by the VRP pass that runs right before the first DOM.
>
> Thus I took the opportunity to rewrite the CFG walk of VRP and
> to properly track SSA name liveness for the edges we insert
> asserts on. This removes one of the kludges that disabled
> the jump-threading capabilities of VRP in some cases. With
> that change the number of jump-threads performed by VRP go up
> a bit which compensates for the DOM removal (now the second DOM
> pass catches the leftovers instead).
>
>
> The patch has not yet been benchmarked (scheduled for tonight) but
> it has been bootstrapped and tested on x86_64-unknown-linux-gnu.
SPEC/Polyhedron/C++ tests look good. There is overall improvement
in runtime and compile-time. I'll plan to apply this two days after
the first patch.
Richard.