diff options
author | J"orn Rennecke <amylaar@redhat.com> | 2001-09-21 00:45:30 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2001-09-21 01:45:30 +0100 |
commit | 385b6e2d89aafa6135634bf661b1b559dedc8de8 (patch) | |
tree | 17d728b05bed014f8620fd0df4576c3c1a968f86 /gcc/doc | |
parent | a4b5b2ae8d59dbaf8c855590cbd78ad3f5c47b64 (diff) | |
download | gcc-385b6e2d89aafa6135634bf661b1b559dedc8de8.zip gcc-385b6e2d89aafa6135634bf661b1b559dedc8de8.tar.gz gcc-385b6e2d89aafa6135634bf661b1b559dedc8de8.tar.bz2 |
integrate.c (allocate_initial_values): New function.
* integrate.c (allocate_initial_values): New function.
* integrate.h (allocate_initial_values): Declare.
* local-alloc.c (local_alloc): Move call to allocate_reg_info from
here...
* reload1.c (reload): And initialization of reg_equiv_memory_loc
from here...
* toplev.c (rest_of_compilation): To here.
Call allocate_initial_values.
* tm.texi: add description for ALLOCATE_INITIAL_VALUE.
From-SVN: r45716
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/tm.texi | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index edc2f3c..71e4cd9 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -8760,4 +8760,24 @@ On some targets, branches may have a limited range. Optimizing the filling of delay slots can result in branches being redirected, and this may in turn cause a branch offset to overflow. +@findex ALLOCATE_INITIAL_VALUE +@item ALLOCATE_INITIAL_VALUE(@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 a 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 +@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 +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 +register in question will not be clobbered. + @end table |