From patchwork Thu Dec 6 20:15:26 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [rs6000] Update default loop peel limits From: Pat Haugen X-Patchwork-Id: 204311 Message-Id: <50C0FCDE.5010508@linux.vnet.ibm.com> To: GCC Patches Cc: David Edelsohn Date: Thu, 06 Dec 2012 14:15:26 -0600 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 * 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). */