diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-01-01 02:32:57 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-01-01 02:32:57 +0000 |
commit | 2836f00621a6b05ba7f9ed67a531a56cc73b3682 (patch) | |
tree | 6954fbd4d8694312315db4ec5b21e6a62873aec7 /gcc/regs.h | |
parent | 45ca31d6f4658b3f17900c84982602ec3baaeab1 (diff) | |
download | gcc-2836f00621a6b05ba7f9ed67a531a56cc73b3682.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10926 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regs.h')
-rw-r--r-- | gcc/regs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/regs.h b/gcc/regs.h index 17293d68497..c26528d0574 100644 --- a/gcc/regs.h +++ b/gcc/regs.h @@ -176,6 +176,12 @@ extern int caller_save_needed; #define CALLER_SAVE_PROFITABLE(REFS, CALLS) (4 * (CALLS) < (REFS)) #endif +/* On most machines a register class is likely to be spilled if it + only has one register. */ +#ifndef CLASS_LIKELY_SPILLED_P +#define CLASS_LIKELY_SPILLED_P(CLASS) (reg_class_size[(int) (CLASS)] == 1) +#endif + /* Allocated in local_alloc. */ /* A list of SCRATCH rtl allocated by local-alloc. */ |