The following patch restores the old default limits for loop peeling
that were recently changed to 100 and caused a 20% degradation in
454.calculix.
Bootstrap/regtest on powerpc64-linux with no new regressions. Ok for trunk?
-Pat
2012-12-06 Pat Haugen <pthau...@us.ibm.com>
* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
default loop peeling limits.
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c (revision 194260)
+++ gcc/config/rs6000/rs6000.c (working copy)
@@ -3120,6 +3120,14 @@ rs6000_option_override_internal (bool gl
global_options.x_param_values,
global_options_set.x_param_values);
+ /* Increase loop peeling limits based on performance analysis. */
+ maybe_set_param_value (PARAM_MAX_PEELED_INSNS, 400,
+ global_options.x_param_values,
+ global_options_set.x_param_values);
+ maybe_set_param_value (PARAM_MAX_COMPLETELY_PEELED_INSNS, 400,
+ global_options.x_param_values,
+ global_options_set.x_param_values);
+
/* If using typedef char *va_list, signal that
__builtin_va_start (&ap, 0) can be optimized to
ap = __builtin_next_arg (0). */