Message ID | 1475243523-12183-1-git-send-email-claziss@synopsys.com |
---|---|
State | New |
Headers | show |
* 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 >
> > 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 --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