Here it is. The previous version had more mods which should be in a different patch.
Please let me know if you still have issues with it, Claudiu gcc/ 2016-05-09 Claudiu Zissulescu <claz...@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. --- gcc/common/config/arc/arc-common.c | 1 - gcc/config/arc/arc.c | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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..825bccf 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -858,6 +858,13 @@ arc_override_options (void) if (arc_size_opt_level == 3) optimize_size = 1; + /* Compact casesi is not a valid option for ARCv2 family, disable + it. */ + if (TARGET_V2) + TARGET_COMPACT_CASESI = 0; + else if (optimize_size == 1) + TARGET_COMPACT_CASESI = 1; + if (flag_pic) target_flags |= MASK_NO_SDATA_SET; -- 1.9.1