From: rguenth Date: Thu, 9 Dec 2010 10:00:25 +0000 (+0000) Subject: 2010-12-09 Richard Guenther X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=63dae96b55da691bcdae95170dce81dcc79d294e 2010-12-09 Richard Guenther * rtl.h (invalid_mode_change_p): Adjust prototype. * reginfo.c (invalid_mode_change_p): Remove from argument. * ira-costs.c (print_allocno_costs): Adjust callers. (find_costs_and_classes): Likewise. 2010-12-09 Richard Guenther * ira.c (ira): Do not call finish_subregs_of_mode. * ira-costs.c (finish_costs): Call finish_subregs_of_mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167631 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5ad27b721f3..f4338c0f3eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2010-12-09 Richard Guenther + + * ira.c (ira): Do not call finish_subregs_of_mode. + * ira-costs.c (finish_costs): Call finish_subregs_of_mode. + +2010-12-09 Richard Guenther + + * rtl.h (invalid_mode_change_p): Adjust prototype. + * reginfo.c (invalid_mode_change_p): Remove from argument. + * ira-costs.c (print_allocno_costs): Adjust callers. + (find_costs_and_classes): Likewise. + 2010-12-09 Jakub Jelinek * config/s390/s390.md (*movcc): Change lgoc and stgoc to diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index 2a7a9a8c418..2329613ffa8 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -1093,8 +1093,7 @@ print_allocno_costs (FILE *f) && (! in_inc_dec[i] || ! forbidden_inc_dec_class[rclass]) #endif #ifdef CANNOT_CHANGE_MODE_CLASS - && ! invalid_mode_change_p (regno, (enum reg_class) rclass, - PSEUDO_REGNO_MODE (regno)) + && ! invalid_mode_change_p (regno, (enum reg_class) rclass) #endif ) { @@ -1131,8 +1130,7 @@ print_pseudo_costs (FILE *f) && (! in_inc_dec[regno] || ! forbidden_inc_dec_class[rclass]) #endif #ifdef CANNOT_CHANGE_MODE_CLASS - && ! invalid_mode_change_p (regno, (enum reg_class) rclass, - PSEUDO_REGNO_MODE (regno)) + && ! invalid_mode_change_p (regno, (enum reg_class) rclass) #endif ) fprintf (f, " %s:%d", reg_class_names[rclass], @@ -1336,8 +1334,7 @@ find_costs_and_classes (FILE *dump_file) || (inc_dec_p && forbidden_inc_dec_class[rclass]) #endif #ifdef CANNOT_CHANGE_MODE_CLASS - || invalid_mode_change_p (i, (enum reg_class) rclass, - PSEUDO_REGNO_MODE (i)) + || invalid_mode_change_p (i, (enum reg_class) rclass) #endif ) continue; @@ -1412,8 +1409,7 @@ find_costs_and_classes (FILE *dump_file) || (inc_dec_p && forbidden_inc_dec_class[rclass]) #endif #ifdef CANNOT_CHANGE_MODE_CLASS - || invalid_mode_change_p (i, (enum reg_class) rclass, - PSEUDO_REGNO_MODE (i)) + || invalid_mode_change_p (i, (enum reg_class) rclass) #endif ) ; @@ -1699,6 +1695,7 @@ init_costs (void) static void finish_costs (void) { + finish_subregs_of_mode (); ira_free (regno_equiv_gains); ira_free (regno_cover_class); ira_free (pref_buffer); diff --git a/gcc/ira.c b/gcc/ira.c index df86bb5965d..6db1fba5a6f 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -3279,8 +3279,6 @@ ira (FILE *f) reload_completed = !reload (get_insns (), ira_conflicts_p); - finish_subregs_of_mode (); - timevar_pop (TV_RELOAD); timevar_push (TV_IRA); diff --git a/gcc/reginfo.c b/gcc/reginfo.c index 7c1209fe4b4..dd2376b0c94 100644 --- a/gcc/reginfo.c +++ b/gcc/reginfo.c @@ -1338,12 +1338,12 @@ init_subregs_of_mode (void) mode. */ bool invalid_mode_change_p (unsigned int regno, - enum reg_class rclass ATTRIBUTE_UNUSED, - enum machine_mode from) + enum reg_class rclass ATTRIBUTE_UNUSED) { struct subregs_of_mode_node dummy, *node; unsigned int to; unsigned char mask; + enum machine_mode from = PSEUDO_REGNO_MODE (regno); gcc_assert (subregs_of_mode); dummy.block = regno & -8; diff --git a/gcc/rtl.h b/gcc/rtl.h index fdb185cd58d..bb482baf5f6 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -2455,8 +2455,7 @@ extern void init_reg_sets (void); extern void regclass (rtx, int); extern void reg_scan (rtx, unsigned int); extern void fix_register (const char *, int, int); -extern bool invalid_mode_change_p (unsigned int, enum reg_class, - enum machine_mode); +extern bool invalid_mode_change_p (unsigned int, enum reg_class); /* In reorg.c */ extern void dbr_schedule (rtx);