diff options
author | Anatoly Sokolov <aesok@post.ru> | 2010-09-02 18:29:37 +0400 |
---|---|---|
committer | Anatoly Sokolov <aesok@gcc.gnu.org> | 2010-09-02 18:29:37 +0400 |
commit | 07b8f0a812a056b69fcaf00bde67aa74b5b02397 (patch) | |
tree | 8800ae6420f6689c40bea9995085ad6bf47c0f65 /gcc/doc/tm.texi.in | |
parent | 844022b747eebc8f02c0e7b4165cc10b7521432e (diff) | |
download | gcc-07b8f0a812a056b69fcaf00bde67aa74b5b02397.zip gcc-07b8f0a812a056b69fcaf00bde67aa74b5b02397.tar.gz gcc-07b8f0a812a056b69fcaf00bde67aa74b5b02397.tar.bz2 |
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
Diffstat (limited to 'gcc/doc/tm.texi.in')
-rw-r--r-- | gcc/doc/tm.texi.in | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index f0bdf68..24f5c1b3 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -2858,6 +2858,24 @@ Do not define this macro if you do not define is @code{BITS_PER_WORD} bits wide is correct for your machine. @end defmac +@hook TARGET_CLASS_LIKELY_SPILLED_P +A target hook which returns @code{true} if pseudos that have been assigned +to registers of class @var{rclass} would likely be spilled because +registers of @var{rclass} are needed for spill registers. + +The default version of this target hook returns @code{true} if @var{rclass} +has exactly one register and @code{false} otherwise. On most machines, this +default should be used. Only use this target hook to some other expression +if pseudos allocated by @file{local-alloc.c} end up in memory because their +hard registers were needed for spill registers. If this target hook returns +@code{false} for those classes, those pseudos will only be allocated by +@file{global.c}, which knows how to reallocate the pseudo to another +register. If there would not be another register available for reallocation, +you should not change the implementation of this target hook since +the only effect of such implementation would be to slow down register +allocation. +@end deftypefn + @defmac CLASS_LIKELY_SPILLED_P (@var{class}) A C expression whose value is nonzero if pseudos that have been assigned to registers of class @var{class} would likely be spilled because |