aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config/alpha/alpha.h11
-rw-r--r--gcc/config/cris/cris.h8
-rw-r--r--gcc/config/m32c/m32c.h1
-rw-r--r--gcc/config/mmix/mmix.h6
-rw-r--r--gcc/config/mn10300/mn10300.h2
-rw-r--r--gcc/config/moxie/moxie.h8
-rw-r--r--gcc/config/pa/pa-linux.h2
-rw-r--r--gcc/config/pa/pa64-linux.h6
-rw-r--r--gcc/config/picochip/picochip.h2
-rw-r--r--gcc/config/spu/spu.h2
-rw-r--r--gcc/config/xtensa/xtensa.h4
-rw-r--r--gcc/defaults.h4
-rw-r--r--gcc/doc/tm.texi6
14 files changed, 29 insertions, 47 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 31e6a60..27d436c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2009-06-24 Anatoly Sokolov <aesok@post.ru>
+
+ * defaults.h (CAN_ELIMINATE): Provide default.
+ * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
+ * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
+ * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
+ * config/spu/spu.h (CAN_ELIMINATE): Delete.
+ * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
+ * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
+ * config/cris/cris.h (CAN_ELIMINATE): Delete.
+ * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
+ * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
+ * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
+
2009-06-24 DJ Delorie <dj@redhat.com>
* mep-ext-cop.cpu: Fix copyright notice.
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index 3bfbd50..5b74fe1 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -1,6 +1,7 @@
/* Definitions of target machine for GNU compiler, for DEC Alpha.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2004, 2005, 2007, 2008, 2009
+ Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GCC.
@@ -690,14 +691,6 @@ extern int alpha_memory_latency;
{ FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{ FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}}
-/* Given FROM and TO register numbers, say whether this elimination is allowed.
- Frame pointer elimination is automatically handled.
-
- All eliminations are valid since the cases where FP can't be
- eliminated are already handled. */
-
-#define CAN_ELIMINATE(FROM, TO) 1
-
/* Round up to a multiple of 16 bytes. */
#define ALPHA_ROUND(X) (((X) + 15) & ~ 15)
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index 47936d6..d908cfb 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -1,6 +1,6 @@
/* Definitions for GCC. Part of the machine description for CRIS.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
- Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
+ 2009 Free Software Foundation, Inc.
Contributed by Axis Communications. Written by Hans-Peter Nilsson.
This file is part of GCC.
@@ -860,10 +860,6 @@ enum reg_class
{ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
-/* We need not worry about when the frame-pointer is required for other
- reasons. */
-#define CAN_ELIMINATE(FROM, TO) 1
-
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
(OFFSET) = cris_initial_elimination_offset (FROM, TO)
diff --git a/gcc/config/m32c/m32c.h b/gcc/config/m32c/m32c.h
index 5c31305..691bc994 100644
--- a/gcc/config/m32c/m32c.h
+++ b/gcc/config/m32c/m32c.h
@@ -498,7 +498,6 @@ enum reg_class
{AP_REGNO, FB_REGNO}, \
{FB_REGNO, SP_REGNO}}
-#define CAN_ELIMINATE(FROM,TO) 1
#define INITIAL_ELIMINATION_OFFSET(FROM,TO,VAR) \
(VAR) = m32c_initial_elimination_offset(FROM,TO)
diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h
index fb3d301..03a747f 100644
--- a/gcc/config/mmix/mmix.h
+++ b/gcc/config/mmix/mmix.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for MMIX.
- Copyright (C) 2000, 2001, 2002, 2004, 2005, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2004, 2005, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Hans-Peter Nilsson (hp@bitrange.com)
@@ -598,10 +598,6 @@ enum reg_class
{ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
-/* We need not worry about when the frame-pointer is required for other
- reasons; GCC takes care of those cases. */
-#define CAN_ELIMINATE(FROM, TO) 1
-
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
(OFFSET) = mmix_initial_elimination_offset (FROM, TO)
diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h
index 77be996..7d15e05 100644
--- a/gcc/config/mn10300/mn10300.h
+++ b/gcc/config/mn10300/mn10300.h
@@ -484,8 +484,6 @@ enum reg_class {
{ ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \
{ FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
-#define CAN_ELIMINATE(FROM, TO) 1
-
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
OFFSET = initial_offset (FROM, TO)
diff --git a/gcc/config/moxie/moxie.h b/gcc/config/moxie/moxie.h
index 73a1a51..cbe8eed 100644
--- a/gcc/config/moxie/moxie.h
+++ b/gcc/config/moxie/moxie.h
@@ -460,14 +460,6 @@ do \
{ ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM }}
#endif
-/* A C expression that returns nonzero if the compiler is allowed to
- try to replace register number FROM-REG with register number
- TO-REG. This macro need only be defined if `ELIMINABLE_REGS' is
- defined, and will usually be the constant 1, since most of the
- cases preventing register elimination are things that the compiler
- already knows about. */
-#define CAN_ELIMINATE(FROM, TO) 1
-
/* This macro is similar to `INITIAL_FRAME_POINTER_OFFSET'. It
specifies the initial difference between the specified pair of
registers. This macro must be defined if `ELIMINABLE_REGS' is
diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h
index 8af089a..f698f3f 100644
--- a/gcc/config/pa/pa-linux.h
+++ b/gcc/config/pa/pa-linux.h
@@ -1,5 +1,5 @@
/* Definitions for PA_RISC with ELF format
- Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/pa/pa64-linux.h b/gcc/config/pa/pa64-linux.h
index 3e0a30f..174d7c5 100644
--- a/gcc/config/pa/pa64-linux.h
+++ b/gcc/config/pa/pa64-linux.h
@@ -28,12 +28,6 @@ along with GCC; see the file COPYING3. If not see
{ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \
}
-/* A C expression that returns nonzero if the compiler is allowed to try to
- replace register number FROM with register number TO. The frame pointer
- is automatically handled. */
-
-#define CAN_ELIMINATE(FROM, TO) 1
-
/* This macro is similar to `INITIAL_FRAME_POINTER_OFFSET'. It
specifies the initial difference between the specified pair of
registers. This macro must be defined if `ELIMINABLE_REGS' is
diff --git a/gcc/config/picochip/picochip.h b/gcc/config/picochip/picochip.h
index 0440001..c08b89d 100644
--- a/gcc/config/picochip/picochip.h
+++ b/gcc/config/picochip/picochip.h
@@ -413,8 +413,6 @@ extern const enum reg_class picochip_regno_reg_class[FIRST_PSEUDO_REGISTER];
{{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
-#define CAN_ELIMINATE(FROM, TO) 1
-
#define INITIAL_ELIMINATION_OFFSET(FROM,TO,OFFSET) \
OFFSET = initial_elimination_offset(FROM, TO);
diff --git a/gcc/config/spu/spu.h b/gcc/config/spu/spu.h
index f994f37..6b56a45 100644
--- a/gcc/config/spu/spu.h
+++ b/gcc/config/spu/spu.h
@@ -320,8 +320,6 @@ targetm.resolve_overloaded_builtin = spu_resolve_overloaded_builtin; \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}}
-#define CAN_ELIMINATE(FROM,TO) 1
-
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
((OFFSET) = spu_initial_elimination_offset((FROM),(TO)))
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index ec5dde1..120ae75 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -1,5 +1,5 @@
/* Definitions of Tensilica's Xtensa target machine for GNU compiler.
- Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
@@ -530,8 +530,6 @@ extern const enum reg_class xtensa_regno_to_class[FIRST_PSEUDO_REGISTER];
{ FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{ FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}}
-#define CAN_ELIMINATE(FROM, TO) 1
-
/* Specify the initial difference between the specified pair of registers. */
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
do { \
diff --git a/gcc/defaults.h b/gcc/defaults.h
index a4b870e..0db07a9 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -1143,6 +1143,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define ATTRIBUTE_ALIGNED_VALUE BIGGEST_ALIGNMENT
#endif
+#ifndef CAN_ELIMINATE
+#define CAN_ELIMINATE(FROM, TO) true
+#endif
+
/* Many ports have no mode-dependent addresses (except possibly autoincrement
and autodecrement addresses, which are handled by target-independent code
in recog.c). */
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index bc15583..a2c7562 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -3804,12 +3804,14 @@ specified first since that is the preferred elimination.
@end defmac
@defmac CAN_ELIMINATE (@var{from-reg}, @var{to-reg})
-A C expression that returns nonzero if the compiler is allowed to try
+A C expression that returns @code{true} if the compiler is allowed to try
to replace register number @var{from-reg} with register number
@var{to-reg}. This macro need only be defined if @code{ELIMINABLE_REGS}
-is defined, and will usually be the constant 1, since most of the cases
+is defined, and will usually be @code{true}, since most of the cases
preventing register elimination are things that the compiler already
knows about.
+
+Default value is @code{true}.
@end defmac
@defmac INITIAL_ELIMINATION_OFFSET (@var{from-reg}, @var{to-reg}, @var{offset-var})