summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclaziss <claziss@138bc75d-0d04-0410-961f-82ee72b054a4>2016-10-10 11:39:22 +0000
committerclaziss <claziss@138bc75d-0d04-0410-961f-82ee72b054a4>2016-10-10 11:39:22 +0000
commit6746d6316dbba6c55eed2417581fde5e39895d09 (patch)
tree4c86268b96a5cc5885f5dbe572b46e75e16501ee
parentec8fd20e9fb5ac03a63997501ff0f588806e3768 (diff)
downloadgcc-6746d6316dbba6c55eed2417581fde5e39895d09.tar.gz
[ARC] Disable compact casesi patterns for arcv2
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240916 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/common/config/arc/arc-common.c1
-rw-r--r--gcc/config/arc/arc.c11
-rw-r--r--gcc/doc/invoke.texi4
4 files changed, 21 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7842655c79a..6810f199dc0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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):
diff --git a/gcc/common/config/arc/arc-common.c b/gcc/common/config/arc/arc-common.c
index f5b9c6d3cc9..5b687fb16ad 100644
--- a/gcc/common/config/arc/arc-common.c
+++ b/gcc/common/config/arc/arc-common.c
@@ -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 }
};
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index 2b25b0b737a..5e8d6b4209d 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -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;
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b7a32b663ac..3f9c0a07be0 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -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