This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: New and undocumented target hooks (cf. PR3386, a regression)
- From: Roger Sayle <roger at eyesopen dot com>
- To: Steven Bosscher <stevenb at suse dot de>
- Cc: rth at redhat dot com, <gcc at gcc dot gnu dot org>, <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 3 Dec 2004 15:49:55 -0700 (MST)
- Subject: Re: New and undocumented target hooks (cf. PR3386, a regression)
On Fri, 3 Dec 2004, Steven Bosscher wrote:
> 2003-02-03 Roger Sayle <roger@eyesopen.com>
> TARGET_DELEGITIMIZE_ADDRESS
And here's my contribution, tested with "make dvi" on i686-pc-linux-gnu.
Ok for mainline?
2004-12-03 Roger Sayle <roger@eyesopen.com>
* doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
Index: tm.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/tm.texi,v
retrieving revision 1.401
diff -c -3 -p -r1.401 tm.texi
*** tm.texi 3 Dec 2004 23:15:15 -0000 1.401
--- tm.texi 3 Dec 2004 23:57:20 -0000
*************** an immediate operand on the target machi
*** 5156,5161 ****
--- 5156,5171 ----
anything @code{CONSTANT_P} is valid.
@end defmac
+ @deftypefn {Target Hook} rtx TARGET_DELEGITIMIZE_ADDRESS (rtx @var{x})
+ This hook is used to undo the possibly obfuscating effects of the
+ @code{LEGITIMIZE_ADDRESS} and @code{LEGITIMIZE_RELOAD_ADDRESS} target
+ macros. Some backend implementations of these macros wrap symbol
+ references inside an @code{UNSPEC} rtx to represent PIC or similar
+ addressing modes. This target hook allows GCC's optimizers to understand
+ the semantics of these opaque @code{UNSPEC}s by converting them back
+ into their original form.
+ @end deftypefn
+
@deftypefn {Target Hook} bool TARGET_CANNOT_FORCE_CONST_MEM (rtx @var{x})
This hook should return true if @var{x} is of a form that cannot (or
should not) be spilled to the constant pool. The default version of
Roger
--