This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: New and undocumented target hooks (cf. PR3386, a regression)
- From: Richard Henderson <rth at redhat dot com>
- To: Steven Bosscher <stevenb at suse dot de>
- Cc: dorit at il dot ibm dot com, fjahanian at apple dot com, bonzini at gnu dot org, echristo at redhat dot com, kkojima at gcc dot gnu dot org, roger at eyesopen dot com, zack at codesourcery dot com, gcc at gcc dot gnu dot org
- Date: Fri, 3 Dec 2004 15:15:14 -0800
- Subject: Re: New and undocumented target hooks (cf. PR3386, a regression)
- References: <6972371.1102079776822.SLOX.WebMail.wwwrun@extimap.suse.de>
On Fri, Dec 03, 2004 at 02:16:16PM +0100, Steven Bosscher wrote:
> 2002-12-09 Richard Henderson <rth@redhat.com>
> TARGET_CANNOT_FORCE_CONST_MEM
> 2003-10-29 Richard Henderson <rth@redhat.com>
> TARGET_BUILD_BUILTIN_VA_LIST
Done.
r~
Index: tm.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/tm.texi,v
retrieving revision 1.400
diff -c -p -d -r1.400 tm.texi
*** tm.texi 3 Dec 2004 15:37:14 -0000 1.400
--- tm.texi 3 Dec 2004 23:13:38 -0000
*************** The default value of this hook is @code{
*** 3925,3930 ****
--- 3925,3935 ----
false.
@end deftypefn
+ @deftypefn {Target Hook} tree TARGET_BUILD_BUILTIN_VA_LIST (void)
+ This hook returns a type node for @code{va_list} for the target.
+ The default version of the hook returns @code{void*}.
+ @end deftypefn
+
@deftypefn {Target Hook} tree TARGET_GIMPLIFY_VA_ARG_EXPR (tree @var{valist}, tree @var{type}, tree *@var{pre_p}, tree *@var{post_p})
This hook performs target-specific gimplification of
@code{VA_ARG_EXPR}. The first two parameters correspond to the
*************** an immediate operand on the target machi
*** 5151,5156 ****
--- 5156,5173 ----
anything @code{CONSTANT_P} is valid.
@end defmac
+ @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
+ this hook returns false.
+
+ The primary reason to define this hook is to prevent reload from
+ deciding that a non-legitimate constant would be better reloaded
+ from the constant pool instead of spilling and reloading a register
+ holding the constant. This restriction is often true of addresses
+ of TLS symbols for various targets.
+ @end deftypefn
+
@node Condition Code
@section Condition Code Status
@cindex condition code status