diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f98e134216c..cf8e4e75752 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-05-24 Eric Botcazou + + * config/sparc/sparc.c (sparc_option_override): If not set by the user, + force flag_ira_share_save_slots to 0. + 2011-05-24 Eric Botcazou * var-tracking.c (compute_cfa_pointer): Adjust head comment. diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index bd7d12a6553..634e44d15e8 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -933,6 +933,12 @@ sparc_option_override (void) ? 64 : 32), global_options.x_param_values, global_options_set.x_param_values); + + /* Disable save slot sharing for call-clobbered registers by default. + The IRA sharing algorithm works on single registers only and this + pessimizes for double floating-point registers. */ + if (!global_options_set.x_flag_ira_share_save_slots) + flag_ira_share_save_slots = 0; } /* Miscellaneous utilities. */