diff options
author | Richard Henderson <rth@gcc.gnu.org> | 1998-04-04 10:37:01 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1998-04-04 10:37:01 -0800 |
commit | 39bdfaa056121fd2a7d54de19863547390be29ab (patch) | |
tree | ee5288b2caa5c9ec936ff96e9c7ffb866778d2c5 /gcc | |
parent | 0022a940045b4dfc379556ed14df105362a3f5df (diff) | |
download | gcc-39bdfaa056121fd2a7d54de19863547390be29ab.zip gcc-39bdfaa056121fd2a7d54de19863547390be29ab.tar.gz gcc-39bdfaa056121fd2a7d54de19863547390be29ab.tar.bz2 |
Clarify LEGITIMIZE_RELOAD_ADDRESS issues a tad.
From-SVN: r18997
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tm.texi | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/gcc/tm.texi b/gcc/tm.texi index a5c2729..9f70403 100644 --- a/gcc/tm.texi +++ b/gcc/tm.texi @@ -4243,21 +4243,26 @@ LEGITIMIZE_RELOAD_ADDRESS appropriately, the intermediate addresses generated for adjacent some stack slots can be made identical, and thus be shared. -@findex strict_memory_address_p -The macro definition may use @code{strict_memory_address_p} to test if -the address has become legitimate. +@emph{Note}: This macro should be used with caution. It is necessary +to know something of how reload works in order to effectively use this, +and it is quite easy to produce macros that build in too much knowledge +of reload internals. @findex push_reload -It may use @code{push_reload} to indicate parts that need reloading. -@var{opnum}, @var{type} and @var{ind_levels} are usually suitable to be -passed unaltered to push_reload. +The macro definition should use @code{push_reload} to indicate parts that +need reloading; @var{opnum}, @var{type} and @var{ind_levels} are usually +suitable to be passed unaltered to @code{push_reload}. -The code generated by this macro should not alter the substructure of +The code generated by this macro must not alter the substructure of @var{x}. If it transforms @var{x} into a more legitimate form, it should assign @var{x} (which will always be a C variable) a new value. This also applies to parts that you change indirectly by calling @code{push_reload}. +@findex strict_memory_address_p +The macro definition may use @code{strict_memory_address_p} to test if +the address has become legitimate. + @findex copy_rtx If you want to change only a part of @var{x}, one standard way of doing this is to use @code{copy_rtx}. Note, however, that is unshares only a @@ -4266,11 +4271,6 @@ top level, you'll need to replace first the top leve It is not necessary for this macro to come up with a legitimate address; but often a machine-dependent strategy can generate better code. -@emph{Note}: This macro should be used with caution. It is necessary -to know something of how reload works in order to effectively use this, -and it is quite easy to produce macros that build in too much knowledge -of reload internals. - @findex GO_IF_MODE_DEPENDENT_ADDRESS @item GO_IF_MODE_DEPENDENT_ADDRESS (@var{addr}, @var{label}) A C statement or compound statement with a conditional @code{goto |