diff mbox

[ARC] Disable compact casesi patterns for arcv2

Message ID 1475243523-12183-1-git-send-email-claziss@synopsys.com
State New
Headers show

Commit Message

Claudiu Zissulescu Sept. 30, 2016, 1:52 p.m. UTC
Please find the updated patch,
Claudiu

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.
---
 gcc/common/config/arc/arc-common.c |  1 -
 gcc/config/arc/arc.c               | 11 +++++++++++
 gcc/doc/invoke.texi                |  4 ++--
 3 files changed, 13 insertions(+), 3 deletions(-)

Comments

Andrew Burgess Oct. 6, 2016, 11:08 p.m. UTC | #1
* Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com> [2016-09-30 15:52:03 +0200]:

> Please find the updated patch,
> Claudiu
> 
> 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.

Looks good to me.

Thanks,
Andrew



> ---
>  gcc/common/config/arc/arc-common.c |  1 -
>  gcc/config/arc/arc.c               | 11 +++++++++++
>  gcc/doc/invoke.texi                |  4 ++--
>  3 files changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/gcc/common/config/arc/arc-common.c b/gcc/common/config/arc/arc-common.c
> index f5b9c6d..5b687fb 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 2b25b0b..5e8d6b4 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 6767462..05f565d 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -14255,8 +14255,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
> -- 
> 1.9.1
>
Claudiu Zissulescu Oct. 10, 2016, 11:40 a.m. UTC | #2
> > 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.
> 
> Looks good to me.
> 

Committed r240916.

Thank you for your review,
Claudiu
diff mbox

Patch

diff --git a/gcc/common/config/arc/arc-common.c b/gcc/common/config/arc/arc-common.c
index f5b9c6d..5b687fb 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 2b25b0b..5e8d6b4 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 6767462..05f565d 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -14255,8 +14255,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