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][RFT] Optimization pass-pipeline re-organization [3/n]


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.


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