[ARC] Disable compact casesi patterns for arcv2
authorClaudiu Zissulescu <claziss@synopsys.com>
Mon, 10 Oct 2016 11:39:22 +0000 (13:39 +0200)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Mon, 10 Oct 2016 11:39:22 +0000 (13:39 +0200)
gcc/
2016-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

* common/config/arc/arc-common.c (arc_option_optimization_table):
Remove compact casesi option.
* config/arc/arc.c (arc_override_options): Use compact casesi
option only for pre-ARCv2 cores.
* doc/invoke.texi (mcompact-casesi): Update text.

From-SVN: r240916

gcc/ChangeLog
gcc/common/config/arc/arc-common.c
gcc/config/arc/arc.c
gcc/doc/invoke.texi

index 7842655c79a2d1a160d2996697a03c68d97c80f2..6810f199dc0bb0ce4b295551f5e5e772bac57fdf 100644 (file)
@@ -1,3 +1,11 @@
+2016-10-10  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * common/config/arc/arc-common.c (arc_option_optimization_table):
+       Remove compact casesi option.
+       * config/arc/arc.c (arc_override_options): Use compact casesi
+       option only for pre-ARCv2 cores.
+       * doc/invoke.texi (mcompact-casesi): Update text.
+
 2016-10-09  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
 
        * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED): 
index f5b9c6d3cc98296067467bfabfd966833164573e..5b687fb16ad5e869e160391fa2a4fdd1c9fd7c91 100644 (file)
@@ -56,7 +56,6 @@ static const struct default_options arc_option_optimization_table[] =
     { OPT_LEVELS_ALL, OPT_mbbit_peephole, NULL, 1 },
     { OPT_LEVELS_SIZE, OPT_mq_class, NULL, 1 },
     { OPT_LEVELS_SIZE, OPT_mcase_vector_pcrel, NULL, 1 },
-    { OPT_LEVELS_SIZE, OPT_mcompact_casesi, NULL, 1 },
     { OPT_LEVELS_NONE, 0, NULL, 0 }
   };
 
index 2b25b0b737a0e5c0f7e194ae95069993125aeaac..5e8d6b4209ddc478e0ded032c5b1fe60885619e8 100644 (file)
@@ -858,6 +858,17 @@ arc_override_options (void)
   if (arc_size_opt_level == 3)
     optimize_size = 1;
 
+  /* Compact casesi is not a valid option for ARCv2 family.  */
+  if (TARGET_V2
+      && TARGET_COMPACT_CASESI)
+    {
+      warning (0, "compact-casesi is not applicable to ARCv2");
+      TARGET_COMPACT_CASESI = 0;
+    }
+  else if (optimize_size == 1
+          && !global_options_set.x_TARGET_COMPACT_CASESI)
+    TARGET_COMPACT_CASESI = 1;
+
   if (flag_pic)
     target_flags |= MASK_NO_SDATA_SET;
 
index b7a32b663ac83975c6d46009a9f6317e6224cbfe..3f9c0a07be0ee33203eeb2ae89b89feb18705b9a 100644 (file)
@@ -14293,8 +14293,8 @@ This is the default for @option{-Os}.
 
 @item -mcompact-casesi
 @opindex mcompact-casesi
-Enable compact casesi pattern.
-This is the default for @option{-Os}.
+Enable compact casesi pattern.  This is the default for @option{-Os},
+and only available for ARCv1 cores.
 
 @item -mno-cond-exec
 @opindex mno-cond-exec