[ARC] Update can_follow_jump hook helper.
authorClaudiu Zissulescu <claziss@synopsys.com>
Thu, 31 Aug 2017 14:35:47 +0000 (16:35 +0200)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Thu, 31 Aug 2017 14:35:47 +0000 (16:35 +0200)
Short branches cannot be used to jump between hot/cold
sections. Update the hook.

gcc/
2017-04-26  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_can_follow_jump): Check for short
branches.

From-SVN: r251566

gcc/ChangeLog
gcc/config/arc/arc.c

index c0e032b1a77ad2b541f2d1a6e83fb5855c97db2f..cf1e005c158c59678a0d50e4ccb03559f9df3e20 100644 (file)
@@ -1,3 +1,8 @@
+2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * config/arc/arc.c (arc_can_follow_jump): Check for short
+       branches.
+
 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * config.gcc: Use g.opt for arc.
index 4dcac1892a7501890637ed6322629f47837ed95b..bc73a591fa479042e28067d5dad22ca94a3d09a0 100644 (file)
@@ -9845,6 +9845,9 @@ arc_can_follow_jump (const rtx_insn *follower, const rtx_insn *followee)
   if (CROSSING_JUMP_P (followee))
     switch (get_attr_type (u.r))
       {
+      case TYPE_BRANCH:
+       if (get_attr_length (u.r) != 2)
+         break;
       case TYPE_BRCC:
       case TYPE_BRCC_NO_DELAY_SLOT:
        return false;