aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2005-06-29 01:24:27 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2005-06-29 01:24:27 +0000
commitb48f503c9806fab41f3a9e484822b5b00dd31e0a (patch)
tree6e5206234e2011fe87ca88acfe08dfbe38d900ca /gcc/doc
parentdcb081fc082c2c6ba19b6d82f5fa067d987c30d6 (diff)
downloadgcc-b48f503c9806fab41f3a9e484822b5b00dd31e0a.zip
gcc-b48f503c9806fab41f3a9e484822b5b00dd31e0a.tar.gz
gcc-b48f503c9806fab41f3a9e484822b5b00dd31e0a.tar.bz2
target.h (gcc_target): New field allocate_initial_value.
* target.h (gcc_target): New field allocate_initial_value. * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro. (TARGET_INITIALIZER): Include it. * integrate.c (allocate_initial_values): Use targetm.allocate_initial_value. * system.h: Poison ALLOCATE_INITIAL_VALUE. * config/sh/sh-protos.h (sh_pr_n_sets): Delete. * config/sh/sh.c (sh_pr_n_sets): Make it static. (sh_allocate_initila_value): New function. (TARGET_ALLOCATE_INITIAL_VALUE): Override default. * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete. * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and update from ALLOCATE_INITIAL_VALUE. From-SVN: r101411
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/tm.texi16
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index dca9ad6..2c51ef2 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -9445,14 +9445,14 @@ filling of delay slots can result in branches being redirected, and this
may in turn cause a branch offset to overflow.
@end defmac
-@defmac ALLOCATE_INITIAL_VALUE (@var{hard_reg})
+@deftypefn {Target Hook} rtx TARGET_ALLOCATE_INITIAL_VALUE (rtx @var{hard_reg})
When the initial value of a hard register has been copied in a pseudo
register, it is often not necessary to actually allocate another register
to this pseudo register, because the original hard register or a stack slot
-it has been saved into can be used. @code{ALLOCATE_INITIAL_VALUE}, if
-defined, is called at the start of register allocation once for each
-hard register that had its initial value copied by using
+it has been saved into can be used. @code{TARGET_ALLOCATE_INITIAL_VALUE}
+is called at the start of register allocation once for each hard register
+that had its initial value copied by using
@code{get_func_hard_reg_initial_val} or @code{get_hard_reg_initial_val}.
Possible values are @code{NULL_RTX}, if you don't want
to do any special allocation, a @code{REG} rtx---that would typically be
@@ -9460,10 +9460,12 @@ the hard register itself, if it is known not to be clobbered---or a
@code{MEM}.
If you are returning a @code{MEM}, this is only a hint for the allocator;
it might decide to use another register anyways.
-You may use @code{current_function_leaf_function} in the definition of the
-macro, functions that use @code{REG_N_SETS}, to determine if the hard
+You may use @code{current_function_leaf_function} in the hook, functions
+that use @code{REG_N_SETS}, to determine if the hard
register in question will not be clobbered.
-@end defmac
+The default value of this hook is @code{NULL}, which disables any special
+allocation.
+@end deftypefn
@defmac TARGET_OBJECT_SUFFIX
Define this macro to be a C string representing the suffix for object