This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch,avr] Fix avr build broken by r276985.


Am 10/17/19 um 1:22 PM schrieb Eric Botcazou:
r276985 broke avr because it removed PARAM_ALLOW_STORE_DATA_RACES from
--params.  The patch fixes that by using flag_store_data_races = 1 instead.

Note that you'll unconditionally override the user, unlike the original code.

You're right.  What about this one?

Johann


	Fix breakage introduced by r276985.
	* config/avr/avr.c (avr_option_override): Remove set of
	PARAM_ALLOW_STORE_DATA_RACES.
	* common/config/avr/avr-common.c (avr_option_optimization_table)
	[OPT_LEVELS_ALL]: Turn on -fallow-store-data-races.

Index: common/config/avr/avr-common.c
===================================================================
--- common/config/avr/avr-common.c	(revision 277097)
+++ common/config/avr/avr-common.c	(working copy)
@@ -38,6 +38,11 @@ static const struct default_options avr_
     { OPT_LEVELS_ALL, OPT_fcaller_saves, NULL, 0 },
     { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_mgas_isr_prologues, NULL, 1 },
     { OPT_LEVELS_1_PLUS, OPT_mmain_is_OS_task, NULL, 1 },
+    /* Allow optimizer to introduce store data races. This used to be the
+       default -- it was changed because bigger targets did not see any
+       performance decrease. For the AVR though, disallowing data races
+       introduces additional code in LIM and increases reg pressure.  */
+    { OPT_LEVELS_ALL, OPT_fallow_store_data_races, NULL, 1 },
     { OPT_LEVELS_NONE, 0, NULL, 0 }
   };
 
Index: config/avr/avr.c
===================================================================
--- config/avr/avr.c	(revision 277097)
+++ config/avr/avr.c	(working copy)
@@ -741,15 +741,6 @@ avr_option_override (void)
   if (avr_strict_X)
     flag_caller_saves = 0;
 
-  /* Allow optimizer to introduce store data races. This used to be the
-     default - it was changed because bigger targets did not see any
-     performance decrease. For the AVR though, disallowing data races
-     introduces additional code in LIM and increases reg pressure.  */
-
-  maybe_set_param_value (PARAM_ALLOW_STORE_DATA_RACES, 1,
-                         global_options.x_param_values,
-                         global_options_set.x_param_values);
-
   /* Unwind tables currently require a frame pointer for correctness,
      see toplev.c:process_options().  */
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]