aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/opts.c11
2 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e63082a..fea61ea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2019-01-30 Richard Biener <rguenther@suse.de>
+
+ PR rtl-optimization/89115
+ * opts.c (default_options_optimization): Reduce
+ PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
+ Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
+ to the default.
+
2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
diff --git a/gcc/opts.c b/gcc/opts.c
index 79b7279..468abb1 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -670,7 +670,16 @@ default_options_optimization (struct gcc_options *opts,
/* For -O1 only do loop invariant motion for very small loops. */
maybe_set_param_value
(PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP,
- opt2 ? default_param_value (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP) : 1000,
+ opt2 ? default_param_value (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
+ : default_param_value (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP) / 10,
+ opts->x_param_values, opts_set->x_param_values);
+
+ /* For -O1 reduce the maximum number of active local stores for RTL DSE
+ since this can consume huge amounts of memory (PR89115). */
+ maybe_set_param_value
+ (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES,
+ opt2 ? default_param_value (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES)
+ : default_param_value (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES) / 10,
opts->x_param_values, opts_set->x_param_values);
/* At -Ofast, allow store motion to introduce potential race conditions. */