From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6107 invoked by alias); 2 May 2008 15:06:07 -0000 Received: (qmail 5829 invoked by alias); 2 May 2008 15:05:19 -0000 Date: Fri, 02 May 2008 15:06:00 -0000 Message-ID: <20080502150519.5828.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/32921] [4.3/4.4 Regression] Revision 126326 causes 12% slowdown In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenther at suse dot de" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-05/txt/msg00111.txt.bz2 ------- Comment #53 from rguenther at suse dot de 2008-05-02 15:05 ------- Subject: Re: [4.3/4.4 Regression] Revision 126326 causes 12% slowdown On Fri, 2 May 2008, mmitchel at gcc dot gnu dot org wrote: > ------- Comment #52 from mmitchel at gcc dot gnu dot org 2008-05-02 14:16 ------- > Yes, the "perfect pass" problem is what concerns me too. For example, if we > try to do dynamic reordering of passes, or allow users to specify that, we have > to worry that, in practice, the compiler will crash or generate wrong code. > We'll have no good way of ever validating even a small set of the possible > combinations. True. Still if we don't have this ability to easily re-order passes we'll never know ;) So I still would like to have our pass-manager scripted, if it is only for development purposes of GCC. > Perhaps we need to make the passes fast, so we can run them more often? Or > weave some of them together, even though of course it's nice if each pass is > logically separate and does a single thing? Most of the cleanup passes are fast, and one of the most important things in my view is maintainability which helps to reduce possible wrong-code bugs. This of course is easier with passes that do one single thing. One thing we should consider is to keep more information around across passes to make passes simpler. For example VRP throws away range information - we could separate out jump threading if we didn't do that, likewise other passes could benefit from this information. FRE and PRE compute value numbers which are also thrown away. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921