aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@gmail.com>2020-12-11 18:27:21 +0200
committerClaudiu Zissulescu <claziss@synopsys.com>2020-12-11 18:29:56 +0200
commita412be00c49406889a84791935194fc54a89ff79 (patch)
tree5fcd154ff61ff06c9e4cf00144012b4fc273e856 /gcc
parentdfbe642c97f7f430926cb6b33cd5c20b42c85573 (diff)
downloadgcc-a412be00c49406889a84791935194fc54a89ff79.zip
gcc-a412be00c49406889a84791935194fc54a89ff79.tar.gz
gcc-a412be00c49406889a84791935194fc54a89ff79.tar.bz2
arc: Avoid generating brcc instructions with limm
BRcc instructions are generated quite late in the compilation process. These instructions combines a compare with a regular conditional branch if the result of the compare is not used anylonger. However, when compiling for size, it is better to avoid BRcc instructions which are introducing a 32-bit long immediate. gcc/ 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_reorg): Avoid limm in BRcc.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/arc/arc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index b80bb9b..27bd458 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -8589,6 +8589,7 @@ arc_reorg (void)
if (!brcc_nolimm_operator (op, VOIDmode)
&& !long_immediate_operand (op1, VOIDmode)
&& (TARGET_ARC700
+ || (TARGET_V2 && optimize_size)
|| next_active_insn (link_insn) != insn))
continue;