On Tue, Nov 26, 2019 at 3:18 PM Wilco Dijkstra <wilco.dijks...@arm.com> wrote:
>
> Hi,
>
> While code hoisting generally improves codesize, it can affect performance
> negatively. Benchmarking shows it doesn't help SPEC and negatively affects
> embedded benchmarks. Since the impact is relatively small with -O2 and mainly
> affects -O3, the simplest option is to disable code hoisting for -O3 and 
> higher.
>
> OK for commit?
>
> ChangeLog:
> 2019-11-26  Wilco Dijkstra  <wdijk...@arm.com>
>
>         PR tree-optimization/80155
>         * common/config/arm/arm-common.c (arm_option_optimization_table):
>         Disable -fcode-hoisting with -O3.
> --
>
> diff --git a/gcc/common/config/arm/arm-common.c 
> b/gcc/common/config/arm/arm-common.c
> index 
> b761d3abd670a144a593c4b410b1e7fbdcb52f56..3e11f21b7dd76cc071b645c32a6fdb4a92511279
>  100644
> --- a/gcc/common/config/arm/arm-common.c
> +++ b/gcc/common/config/arm/arm-common.c
> @@ -39,6 +39,8 @@ static const struct default_options 
> arm_option_optimization_table[] =
>      /* Enable section anchors by default at -O1 or higher.  */
>      { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 },
>      { OPT_LEVELS_FAST, OPT_fsched_pressure, NULL, 1 },
> +    /* Disable code hoisting with -O3 or higher.  */
> +    { OPT_LEVELS_3_PLUS, OPT_fcode_hoisting, NULL, 0 },
>      { OPT_LEVELS_NONE, 0, NULL, 0 }
>    };
>

What are the cases in O3 where this is slower with embedded benchmarks
and how can we fix it ? Keeping the target "different" in this manner
doesn't augur well for the long term.

Ramana

Reply via email to