This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/32921] [4.3/4.4 Regression] Revision 126326 causes 12% slowdown
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 May 2008 12:55:18 -0000
- Subject: [Bug tree-optimization/32921] [4.3/4.4 Regression] Revision 126326 causes 12% slowdown
- References: <bug-32921-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #51 from rguenther at suse dot de 2008-05-02 12:55 -------
Subject: Re: [4.3/4.4 Regression] Revision
126326 causes 12% slowdown
On Fri, 2 May 2008, dnovillo at google dot com wrote:
> ------- Comment #50 from dnovillo at google dot com 2008-05-02 12:32 -------
> Subject: Re: [4.3/4.4 Regression] Revision
> 126326 causes 12% slowdown
>
> On 05/02/08 08:16, rguenth at gcc dot gnu dot org wrote:
>
> > and dropping the final dom pass in favor of another FRE one (DOM has
> > weaker memory optimization but in addition does some jump threading and
> > cond expr combining, both of which don't happen a lot after loop
> > optimizations).
>
> Along these lines, I think we would really benefit from doing a thorough
> study of pass reordering using the techniques in GCC-ICI (GCC Summit
> 2008) and COLE (CGO 2008). Both have found significant improvements
> with different optimization pipelines.
If somebody wants to do the legwork ... (the study probably needs to
be re-done and weight passes properly with "we like this pass" and
"we don't like this pass"). Just by visual inspection and reasoning
I can come up with some reasonable changes -- that probably expose
missed optimizations that can and should be fixed in the proper
passes rather than relying on others to cleanup (see the CCP bugs
I tackled over the last month -- I expect similar stuff in other
passes).
The question is how to go forward here. As any re-ordering
that makes sense appearantly needs thorough analysis of regressions
that happen this isn't an automatic process. Automatic processes
either require "perfect" passes or will come up with solutions that
either still regress or contain a lot more passes than we like
(in possible un-intuitive order).
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921