For x86, STC still gives better results for optimise-for-size than "simple" does. So use STC at -Os as well.
Is this okay for trunk? Segher 2015-10-16 Segher Boessenkool <seg...@kernel.crashing.org> PR rtl-optimization/67864 * common/config/i386/i386-common.c (ix86_option_optimization_table) <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up. --- gcc/common/config/i386/i386-common.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c index 79b2472..bb9f29c 100644 --- a/gcc/common/config/i386/i386-common.c +++ b/gcc/common/config/i386/i386-common.c @@ -1011,6 +1011,9 @@ static const struct default_options ix86_option_optimization_table[] = { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 }, /* Enable function splitting at -O2 and higher. */ { OPT_LEVELS_2_PLUS, OPT_freorder_blocks_and_partition, NULL, 1 }, + /* The STC algorithm produces the smallest code at -Os, for x86. */ + { OPT_LEVELS_2_PLUS, OPT_freorder_blocks_algorithm_, NULL, + REORDER_BLOCKS_ALGORITHM_STC }, /* Turn off -fschedule-insns by default. It tends to make the problem with not enough registers even worse. */ { OPT_LEVELS_ALL, OPT_fschedule_insns, NULL, 0 }, -- 2.4.3