From bc5581fe327388fea5af875c028ccb8cfb0b6a1c Mon Sep 17 00:00:00 2001 From: Claudiu Zissulescu Date: Wed, 1 Feb 2023 13:02:17 +0200 Subject: [PATCH] arc: Don't use millicode thunks unless asked for. ARC has enter_s/leave_s instructions which can save/restore the entire function context. It is not needed the millicode thunks anylonger when compiling for size, thus, make their usage optional. gcc/ * common/config/arc/arc-common.cc (arc_option_optimization_table): Remove millicode from list. gcc/testsuite/ * gcc.target/arc/milli-1.c: Update test. --- gcc/common/config/arc/arc-common.cc | 1 - gcc/testsuite/gcc.target/arc/milli-1.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gcc/common/config/arc/arc-common.cc b/gcc/common/config/arc/arc-common.cc index 6423f6a..95f5dd6 100644 --- a/gcc/common/config/arc/arc-common.cc +++ b/gcc/common/config/arc/arc-common.cc @@ -54,7 +54,6 @@ static const struct default_options arc_option_optimization_table[] = { OPT_LEVELS_SIZE, OPT_fsection_anchors, NULL, 1 }, { OPT_LEVELS_SIZE, OPT_mcase_vector_pcrel, NULL, 1 }, { OPT_LEVELS_SIZE, OPT_msize_level_, NULL, 3 }, - { OPT_LEVELS_SIZE, OPT_mmillicode, NULL, 1 }, { OPT_LEVELS_SIZE, OPT_fif_conversion, NULL, 0 }, { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, { OPT_LEVELS_3_PLUS_SPEED_ONLY, OPT_msize_level_, NULL, 0 }, diff --git a/gcc/testsuite/gcc.target/arc/milli-1.c b/gcc/testsuite/gcc.target/arc/milli-1.c index b501b39..5fba064 100644 --- a/gcc/testsuite/gcc.target/arc/milli-1.c +++ b/gcc/testsuite/gcc.target/arc/milli-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-Os" } */ +/* { dg-options "-Os -mmillicode" } */ /* Test if we restore correctly blink when using millicode. */ extern void bar (void); -- 2.7.4