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().  */
 

Reply via email to