arc: Don't use if-conversion when optimizing for size.
authorClaudiu Zissulescu <claziss@gmail.com>
Thu, 13 Feb 2020 10:32:05 +0000 (12:32 +0200)
committerClaudiu Zissulescu <claziss@gmail.com>
Thu, 13 Feb 2020 10:49:12 +0000 (12:49 +0200)
For ARC, predicated instructions are not very friendly with size
optimizations, leading to increased object size. Disable if-conversion
step when optimized for size.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* common/config/arc/arc-common.c (arc_option_optimization_table):
Disable if-conversion step when optimized for size.

Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
gcc/ChangeLog
gcc/common/config/arc/arc-common.c

index dc5e403..4149839 100644 (file)
@@ -1,5 +1,10 @@
 2020-02-13  Claudiu Zissulescu  <claziss@synopsys.com>
 
+       * common/config/arc/arc-common.c (arc_option_optimization_table):
+       Disable if-conversion step when optimized for size.
+
+2020-02-13  Claudiu Zissulescu  <claziss@synopsys.com>
+
        * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and
        R12-R15 are always in ARCOMPACT16_REGS register class.
        * config/arc/arc.opt (mq-class): Deprecate.
index 082aa09..14c2012 100644 (file)
@@ -59,6 +59,7 @@ static const struct default_options arc_option_optimization_table[] =
     { OPT_LEVELS_SIZE, OPT_mcase_vector_pcrel, NULL, 1 },
     { OPT_LEVELS_SIZE, OPT_msize_level_, NULL, 3 },
     { OPT_LEVELS_SIZE, OPT_mmillicode, NULL, 1 },
+    { OPT_LEVELS_SIZE, OPT_fif_conversion, NULL, 0 },
     { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 },
     { OPT_LEVELS_3_PLUS_SPEED_ONLY, OPT_msize_level_, NULL, 0 },
     { OPT_LEVELS_3_PLUS_SPEED_ONLY, OPT_malign_call, NULL, 1 },