diff options
author | Jeff Law <law@gcc.gnu.org> | 1995-12-31 19:32:57 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1995-12-31 19:32:57 -0700 |
commit | 6cad67d2d0789487217a2091c2f14d48f9e1ad6b (patch) | |
tree | 6954fbd4d8694312315db4ec5b21e6a62873aec7 /gcc/regclass.c | |
parent | 6e81958a66749a62fdd4f50de26e52a10fa559da (diff) | |
download | gcc-6cad67d2d0789487217a2091c2f14d48f9e1ad6b.tar.gz |
hard-reg-set.h (losing_caller_save_reg_set): Declare.
* hard-reg-set.h (losing_caller_save_reg_set): Declare.
* regclass.c (losing_caller_save_reg_set): Define.
(init_reg_sets_1): Initialize losing_caller_save_reg_set.
* global.c (find_reg): Avoid caller-saving registers in
LOSING_CALLER_SAVE_REGS if it's defined.
* local-alloc.c (find_free_reg): Avoid caller-saving registers
in losing_caller_save_reg_set.
(CLASS_LIKELY_SPILLED_P): Delete definition. Moved into regs.h.
* regs.h (CLASS_LIKELY_SPILLED_P): Define if not already defined.
From-SVN: r10926
Diffstat (limited to 'gcc/regclass.c')
-rw-r--r-- | gcc/regclass.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/regclass.c b/gcc/regclass.c index 964cd59b68e..3147ba55fb3 100644 --- a/gcc/regclass.c +++ b/gcc/regclass.c @@ -81,6 +81,9 @@ char call_used_regs[FIRST_PSEUDO_REGISTER]; HARD_REG_SET call_used_reg_set; +/* HARD_REG_SET of registers we want to avoid caller saving. */ +HARD_REG_SET losing_caller_save_reg_set; + /* Data for initializing the above. */ static char initial_call_used_regs[] = CALL_USED_REGISTERS; @@ -390,6 +393,8 @@ init_reg_sets_1 () SET_HARD_REG_BIT (call_used_reg_set, i); if (call_fixed_regs[i]) SET_HARD_REG_BIT (call_fixed_reg_set, i); + if (CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (i))) + SET_HARD_REG_BIT (losing_caller_save_reg_set, i); } } |