Commit fa1fabcb by Richard Guenther Committed by Richard Biener

rtl.h (invalid_mode_change_p): Adjust prototype.

2010-12-09  Richard Guenther  <rguenther@suse.de>

	* 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  <rguenther@suse.de>

	* ira.c (ira): Do not call finish_subregs_of_mode.
	* ira-costs.c (finish_costs): Call finish_subregs_of_mode.

From-SVN: r167631
parent 27037b5f
2010-12-09 Richard Guenther <rguenther@suse.de>
* 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 <rguenther@suse.de>
* 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 <jakub@redhat.com> 2010-12-09 Jakub Jelinek <jakub@redhat.com>
* config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
...@@ -1093,8 +1093,7 @@ print_allocno_costs (FILE *f) ...@@ -1093,8 +1093,7 @@ print_allocno_costs (FILE *f)
&& (! in_inc_dec[i] || ! forbidden_inc_dec_class[rclass]) && (! in_inc_dec[i] || ! forbidden_inc_dec_class[rclass])
#endif #endif
#ifdef CANNOT_CHANGE_MODE_CLASS #ifdef CANNOT_CHANGE_MODE_CLASS
&& ! invalid_mode_change_p (regno, (enum reg_class) rclass, && ! invalid_mode_change_p (regno, (enum reg_class) rclass)
PSEUDO_REGNO_MODE (regno))
#endif #endif
) )
{ {
...@@ -1131,8 +1130,7 @@ print_pseudo_costs (FILE *f) ...@@ -1131,8 +1130,7 @@ print_pseudo_costs (FILE *f)
&& (! in_inc_dec[regno] || ! forbidden_inc_dec_class[rclass]) && (! in_inc_dec[regno] || ! forbidden_inc_dec_class[rclass])
#endif #endif
#ifdef CANNOT_CHANGE_MODE_CLASS #ifdef CANNOT_CHANGE_MODE_CLASS
&& ! invalid_mode_change_p (regno, (enum reg_class) rclass, && ! invalid_mode_change_p (regno, (enum reg_class) rclass)
PSEUDO_REGNO_MODE (regno))
#endif #endif
) )
fprintf (f, " %s:%d", reg_class_names[rclass], fprintf (f, " %s:%d", reg_class_names[rclass],
...@@ -1336,8 +1334,7 @@ find_costs_and_classes (FILE *dump_file) ...@@ -1336,8 +1334,7 @@ find_costs_and_classes (FILE *dump_file)
|| (inc_dec_p && forbidden_inc_dec_class[rclass]) || (inc_dec_p && forbidden_inc_dec_class[rclass])
#endif #endif
#ifdef CANNOT_CHANGE_MODE_CLASS #ifdef CANNOT_CHANGE_MODE_CLASS
|| invalid_mode_change_p (i, (enum reg_class) rclass, || invalid_mode_change_p (i, (enum reg_class) rclass)
PSEUDO_REGNO_MODE (i))
#endif #endif
) )
continue; continue;
...@@ -1412,8 +1409,7 @@ find_costs_and_classes (FILE *dump_file) ...@@ -1412,8 +1409,7 @@ find_costs_and_classes (FILE *dump_file)
|| (inc_dec_p && forbidden_inc_dec_class[rclass]) || (inc_dec_p && forbidden_inc_dec_class[rclass])
#endif #endif
#ifdef CANNOT_CHANGE_MODE_CLASS #ifdef CANNOT_CHANGE_MODE_CLASS
|| invalid_mode_change_p (i, (enum reg_class) rclass, || invalid_mode_change_p (i, (enum reg_class) rclass)
PSEUDO_REGNO_MODE (i))
#endif #endif
) )
; ;
...@@ -1699,6 +1695,7 @@ init_costs (void) ...@@ -1699,6 +1695,7 @@ init_costs (void)
static void static void
finish_costs (void) finish_costs (void)
{ {
finish_subregs_of_mode ();
ira_free (regno_equiv_gains); ira_free (regno_equiv_gains);
ira_free (regno_cover_class); ira_free (regno_cover_class);
ira_free (pref_buffer); ira_free (pref_buffer);
......
...@@ -3279,8 +3279,6 @@ ira (FILE *f) ...@@ -3279,8 +3279,6 @@ ira (FILE *f)
reload_completed = !reload (get_insns (), ira_conflicts_p); reload_completed = !reload (get_insns (), ira_conflicts_p);
finish_subregs_of_mode ();
timevar_pop (TV_RELOAD); timevar_pop (TV_RELOAD);
timevar_push (TV_IRA); timevar_push (TV_IRA);
......
...@@ -1338,12 +1338,12 @@ init_subregs_of_mode (void) ...@@ -1338,12 +1338,12 @@ init_subregs_of_mode (void)
mode. */ mode. */
bool bool
invalid_mode_change_p (unsigned int regno, invalid_mode_change_p (unsigned int regno,
enum reg_class rclass ATTRIBUTE_UNUSED, enum reg_class rclass ATTRIBUTE_UNUSED)
enum machine_mode from)
{ {
struct subregs_of_mode_node dummy, *node; struct subregs_of_mode_node dummy, *node;
unsigned int to; unsigned int to;
unsigned char mask; unsigned char mask;
enum machine_mode from = PSEUDO_REGNO_MODE (regno);
gcc_assert (subregs_of_mode); gcc_assert (subregs_of_mode);
dummy.block = regno & -8; dummy.block = regno & -8;
......
...@@ -2455,8 +2455,7 @@ extern void init_reg_sets (void); ...@@ -2455,8 +2455,7 @@ extern void init_reg_sets (void);
extern void regclass (rtx, int); extern void regclass (rtx, int);
extern void reg_scan (rtx, unsigned int); extern void reg_scan (rtx, unsigned int);
extern void fix_register (const char *, int, int); extern void fix_register (const char *, int, int);
extern bool invalid_mode_change_p (unsigned int, enum reg_class, extern bool invalid_mode_change_p (unsigned int, enum reg_class);
enum machine_mode);
/* In reorg.c */ /* In reorg.c */
extern void dbr_schedule (rtx); extern void dbr_schedule (rtx);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment