Hi Jiu Fu,

On Thu, Nov 07, 2019 at 10:40:41PM +0800, Jiufu Guo wrote:
> gcc/
> 2019-11-07  Jiufu Guo  <guoji...@linux.ibm.com>
> 
>       PR tree-optimization/88760
>       * gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
>       * gcc/common/config/rs6000/rs6000-common.c
>       (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
>       Turn on -funroll-loops and -munroll-only-small-loops.
>       [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.
>       * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
>       set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
>       Turn off -munroll-only-small-loops for explicit -funroll-loops.
>       (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
>       (rs6000_loop_unroll_adjust): Define it.  Use -munroll-only-small-loops.
> 
> gcc.testsuite/
> 2019-11-07  Jiufu Guo  <guoji...@linux.ibm.com>
> 
>       PR tree-optimization/88760
>       * gcc.dg/pr59643.c: Update back to r277550.

Okay for trunk.  Thanks!  Just some formatting stuff:

> +    /* Enable -munroll-only-small-loops with -funroll-loops to unroll small
> +    loops at -O2 and above by default.   */

The "l" of "loops" should align with the "E" of "Enable", and only two
spaces after a dot:
    /* Enable -munroll-only-small-loops with -funroll-loops to unroll small
       loops at -O2 and above by default.  */

> +/*  Implement targetm.loop_unroll_adjust.  */

Only one space at the start of the comment.

> +static unsigned
> +rs6000_loop_unroll_adjust (unsigned nunroll, struct loop * loop)

struct loop *loop

> +      /* TODO: This is hardcoded to 10 right now.  It can be refined, for
> +      example we may want to unroll very small loops more times (4 perhaps).
> +      We also should use a PARAM for this.  */

There will be target-specific params soon, if I understood correctly :-)

Cheers,


Segher

Reply via email to