sh.c (sh_option_override): Set branch cost to 2 for all target variants.
authorOleg Endo <olegendo@gcc.gnu.org>
Fri, 16 May 2014 22:21:52 +0000 (22:21 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Fri, 16 May 2014 22:21:52 +0000 (22:21 +0000)
gcc/
* config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
target variants.

From-SVN: r210534

gcc/ChangeLog
gcc/config/sh/sh.c

index 8fb676e..dcc0f8f 100644 (file)
@@ -1,3 +1,8 @@
+2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
+       target variants.
+
 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
 
        Revert:
index 31ea83d..d52e8c1 100644 (file)
@@ -929,15 +929,16 @@ sh_option_override (void)
     sh_divsi3_libfunc = "__sdivsi3_1";
   else
     sh_divsi3_libfunc = "__sdivsi3";
+
   if (sh_branch_cost == -1)
     {
-      sh_branch_cost = 1;
-
       /*  The SH1 does not have delay slots, hence we get a pipeline stall
          at every branch.  The SH4 is superscalar, so the single delay slot
-         is not sufficient to keep both pipelines filled.  */
-      if (! TARGET_SH2 || TARGET_HARD_SH4)
-       sh_branch_cost = 2;
+         is not sufficient to keep both pipelines filled.
+         In any case, set the default branch cost to '2', as it results in
+         slightly overall smaller code and also enables some if conversions
+         that are required for matching special T bit related insns.  */
+      sh_branch_cost = 2;
     }
 
   /* Set -mzdcbranch for SH4 / SH4A if not otherwise specified by the user.  */