While code hoisting generally improves codesize, it can affect performance negatively. Benchmarking shows it doesn't help SPEC and negatively affects embedded benchmarks, so only enable code hoisting with -Os on Arm.
Bootstrap OK, OK for commit? ChangeLog: 2019-09-11 Wilco Dijkstra <wdijk...@arm.com> PR tree-optimization/80155 * common/config/arm/arm-common.c (arm_option_optimization_table): Enable -fcode-hoisting with -Os. -- diff --git a/gcc/common/config/arm/arm-common.c b/gcc/common/config/arm/arm-common.c index 41a920f6dc96833e778faa8dbcc19beac483734c..b0d5fb300bf01acc1fb6f4631635f8a1bfe6441c 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_1_PLUS, OPT_fsched_pressure, NULL, 1 }, + /* Enable code hoisting only with -Os. */ + { OPT_LEVELS_SIZE, OPT_fcode_hoisting, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } };