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 15:05:19 -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 #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