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

Reply via email to