From 07b8f0a812a056b69fcaf00bde67aa74b5b02397 Mon Sep 17 00:00:00 2001 From: Anatoly Sokolov Date: Thu, 2 Sep 2010 18:29:37 +0400 Subject: target.def (class_likely_spilled_p): New hook. * target.def (class_likely_spilled_p): New hook. * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document. * doc/tm.texi: Regenerate. * targhooks.c (default_class_likely_spilled_p): New function. * targhooks.h (default_class_likely_spilled_p): Declare. * regs.h (CLASS_LIKELY_SPILLED_P): Remove. * combine.c: (cant_combine_insn_p, likely_spilled_retval_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro. Use fixed_reg_set instead of fixed_regs. * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook. * calls.c (avoid_likely_spilled_reg): Ditto. * ira-conflicts.c: (ira_build_conflicts): Ditto. * ira.c (update_equiv_regs): Ditto. * mode-switching.c (create_pre_exit): Ditto. * regmove.c (find_matches): Ditto. (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook. * reload.c (SMALL_REGISTER_CLASS_P): Remove macro. (small_register_class_p): New inline function. (push_secondary_reload, find_reusable_reload, find_reloads): Use small_register_class_p instead of SMALL_REGISTER_CLASS_P. * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove. * config/i386/i386.c (ix86_class_likely_spilled_p): New. (TARGET_CLASS_LIKELY_SPILLED_P): Define. From-SVN: r163779 --- gcc/targhooks.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gcc/targhooks.c') diff --git a/gcc/targhooks.c b/gcc/targhooks.c index f8cb522..a0e24c0 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -1220,4 +1220,16 @@ default_profile_before_prologue (void) #endif } +/* The default implementation of TARGET_CLASS_LIKELY_SPILLED_P. */ + +bool +default_class_likely_spilled_p (reg_class_t rclass) +{ +#ifndef CLASS_LIKELY_SPILLED_P + return (reg_class_size[(int) rclass] == 1); +#else + return CLASS_LIKELY_SPILLED_P ((enum reg_class) rclass); +#endif +} + #include "gt-targhooks.h" -- cgit v1.1