Send it again to linaro-toolchain@lists.linaro.org On Wed, Aug 04, 2010 at 10:53:46PM +0800, Yao Qi wrote: > LP:602190(https://bugs.launchpad.net/gcc-linaro/+bug/602190) and > LP:602285(https://bugs.launchpad.net/gcc-linaro/+bug/602285) are > related to this patch below. You can get more details from comments > of these bugs, since I've added my understand of the cause in > comments. > > This patch is to improve the performance of generated code, however, > these two bugs are related to this patch(, correct me if I am wrong). > Now, we have two options, 1) revert this patch, and make these test > case pass; 2) keep this patch and fix test cases, 3) fix bugs and keep > this patch, > > What do you think? > > > 2009-08-26 Daniel Jacobowitz <d...@codesourcery.com> > > Issue #6131 - Enable additional optimizations by default in Lite > Issue #6103 - Reduce default unrolling parameters at -O3 > > * release-notes-csl.xml (Improved optimization for ARM): New note. > > gcc/ > * config/arm/arm.c (arm_override_options): If flag_unroll_loops has > the default value, adjust unrolling parameters. > (arm_optimization_options): Set flag_unroll_loops to a default value. > Enable flag_promote_loop_indices. > > Modified: gcc/config/arm/arm.c > ============================================================================== > --- gcc/config/arm/arm.c (original) > +++ gcc/config/arm/arm.c Fri Aug 28 > 14:41:19 2009 > @@ -55,6 +55,7 @@ > #include "langhooks.h" > #include "df.h" > #include "intl.h" > +#include "params.h" > > /* Forward definitions of types. */ > typedef struct minipool_node Mnode; > @@ -1857,6 +1858,29 @@ > warning (0, > "-low-irq-latency has no effect when compiling for the > Thumb"); > low_irq_latency = 0; > + } > + > + /* CSL LOCAL */ > + /* Loop unrolling can be a substantial win. At -O2, limit to 2x > + unrolling by default to prevent excessive code growth; at -O3, > + limit to 4x unrolling by default. We know we are not optimizing > + for size if this is set (see arm_optimization_options). */ > + if (flag_unroll_loops == 2) > + { > + if (optimize == 2) > + { > + flag_unroll_loops = 1; > + if (!PARAM_SET_P (PARAM_MAX_UNROLL_TIMES)) > + set_param_value ("max-unroll-times", 2); > + } > + else if (optimize > 2) > + { > + flag_unroll_loops = 1; > + if (!PARAM_SET_P (PARAM_MAX_UNROLL_TIMES)) > + set_param_value ("max-unroll-times", 4); > + } > + else > + flag_unroll_loops = 0; > } > } > > @@ -21175,6 +21199,17 @@ > set_param_value ("max-inline-insns-single", 1); > set_param_value ("max-inline-insns-auto", 1); > } > + else > + { > + /* CSL LOCAL */ > + /* Set flag_unroll_loops to a default value, so that we can tell > + if it was specified on the command line; see > + arm_override_options. */ > + flag_unroll_loops = 2; > + /* Promote loop indices to int where possible. Consider moving this > + to -Os, also. */ > + flag_promote_loop_indices = 1; > + } > } > > > -- > Yao Qi > CodeSourcery > y...@codesourcery.com > (650) 331-3385 x739
-- Yao Qi CodeSourcery y...@codesourcery.com (650) 331-3385 x739 _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain