* RFA: Provide a default definition of CONSTANT_ADDRESS_P
@ 2009-10-20 9:01 Nick Clifton
2009-10-20 9:38 ` Hans-Peter Nilsson
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Nick Clifton @ 2009-10-20 9:01 UTC (permalink / raw)
To: gcc-patches, law, chertykov, aesok, bernd.schmidt, hp, dj,
stcarrez, aoliva, green, ni1d, hariharan, dant
[-- Attachment #1: Type: text/plain, Size: 2292 bytes --]
Hi Guys,
This is a follow up to a comment from Jeff Law about a patch I
created for the MN10300 port. We found that for that port that its
definition of CONSTANT_ADDRESS_P() as just CONSTANT_P() was a little
bit too permissive. In particular it was allowing CONST_DOUBLEs to
be treated as constant addresses which tended to confuse other parts
of the compiler.
It turns out that quite a few backends use this definition of
CONSTANT_ADDRESS_P. It is suggested in the tm.texi documentation
which is probably why it has happened. So I am seeking approval for
the attached patch to address the problem. It does two things:
Firstly it provides a default definition of CONSTANT_ADDRESS_P in
defaults.h which includes a test to make sure that CONST_DOUBLEs are
not allowed. Secondly it updates all of the backends which used to
define CONSTANT_ADDRESS_P as CONSTANT_P so that they now use this
default definition.
Tested by building the following targets: avr-elf, bfin-elf,
cris-elf, fr30-elf, frv-elf, m32c-elf, m68hc12-elf, mep-elf,
mn10300-elf, moxie-elf, pdp11-aout, picochip-elf, score-elf,
xstormy16-elf.
I also ran an x86 bootstrap just to make sure that the change to
defaults.h did not break anything - it did not.
OK to apply ?
Cheers
Nick
gcc/ChangeLog
2009-10-20 Nick Clifton <nickc@redhat.com>
* defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
Make sure that it does not allow CONST_DOUBLEs.
* doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
* config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
* config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
* config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
* config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
* config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
* config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
* config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
* config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
* config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
* config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
* config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
* config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
* config/score/score.h (CONSTANT_ADDRESS_P): Delete.
* config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: constant.patch --]
[-- Type: text/x-patch, Size: 8861 bytes --]
Index: gcc/doc/tm.texi
===================================================================
--- gcc/doc/tm.texi (revision 152972)
+++ gcc/doc/tm.texi (working copy)
@@ -5370,9 +5369,10 @@
@defmac CONSTANT_ADDRESS_P (@var{x})
A C expression that is 1 if the RTX @var{x} is a constant which
-is a valid address. On most machines, this can be defined as
-@code{CONSTANT_P (@var{x})}, but a few machines are more restrictive
-in which constant addresses are supported.
+is a valid address. On most machines the default definition of
+@code{(CONSTANT_P (@var{x}) && GET_CODE (@var{x}) != CONST_DOUBLE)}
+is acceptable, but a few machines are more restrictive as to which
+constant addresses are supported.
@end defmac
@defmac CONSTANT_P (@var{x})
Index: gcc/defaults.h
===================================================================
--- gcc/defaults.h (revision 152972)
+++ gcc/defaults.h (working copy)
@@ -1154,4 +1154,10 @@
#define GO_IF_MODE_DEPENDENT_ADDRESS(X, WIN)
#endif
+/* For most ports anything that evaluates to a constant symbolic
+ or integer value is acceptable as a constant address. */
+#ifndef CONSTANT_ADDRESS_P
+#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
+#endif
+
#endif /* ! GCC_DEFAULTS_H */
Index: gcc/config/frv/frv.h
===================================================================
--- gcc/config/frv/frv.h (revision 152972)
+++ gcc/config/frv/frv.h (working copy)
@@ -1968,16 +1968,6 @@
\f
/* Addressing Modes. */
-/* A C expression that is 1 if the RTX X is a constant which is a valid
- address. On most machines, this can be defined as `CONSTANT_P (X)', but a
- few machines are more restrictive in which constant addresses are supported.
-
- `CONSTANT_P' accepts integer-values expressions whose values are not
- explicitly known, such as `symbol_ref', `label_ref', and `high' expressions
- and `const' arithmetic expressions, in addition to `const_int' and
- `const_double' expressions. */
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
-
/* A number, the maximum number of registers that can appear in a valid memory
address. Note that it is up to you to specify a value equal to the maximum
number that `TARGET_LEGITIMATE_ADDRESS_P' would ever accept. */
Index: gcc/config/m32c/m32c.h
===================================================================
--- gcc/config/m32c/m32c.h (revision 152972)
+++ gcc/config/m32c/m32c.h (working copy)
@@ -563,7 +563,6 @@
#define HAVE_PRE_DECREMENT 1
#define HAVE_POST_INCREMENT 1
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P(X)
#define MAX_REGS_PER_ADDRESS 1
/* This is passed to the macros below, so that they can be implemented
Index: gcc/config/mep/mep.h
===================================================================
--- gcc/config/mep/mep.h (revision 152972)
+++ gcc/config/mep/mep.h (working copy)
@@ -567,8 +567,6 @@
#define TRAMPOLINE_SIZE 20
\f
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
-
#define MAX_REGS_PER_ADDRESS 1
#ifdef REG_OK_STRICT
Index: gcc/config/pdp11/pdp11.h
===================================================================
--- gcc/config/pdp11/pdp11.h (revision 152972)
+++ gcc/config/pdp11/pdp11.h (working copy)
@@ -594,10 +594,6 @@
#define MAX_REGS_PER_ADDRESS 1
-/* Recognize any constant value that is a valid address. */
-
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
-
/* Nonzero if the constant value X is a legitimate general operand.
It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */
Index: gcc/config/avr/avr.h
===================================================================
--- gcc/config/avr/avr.h (revision 152972)
+++ gcc/config/avr/avr.h (working copy)
@@ -406,8 +406,6 @@
#define HAVE_POST_INCREMENT 1
#define HAVE_PRE_DECREMENT 1
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
-
#define MAX_REGS_PER_ADDRESS 1
#define REG_OK_FOR_BASE_NOSTRICT_P(X) \
Index: gcc/config/stormy16/stormy16.h
===================================================================
--- gcc/config/stormy16/stormy16.h (revision 152972)
+++ gcc/config/stormy16/stormy16.h (working copy)
@@ -522,8 +522,6 @@
#define HAVE_PRE_DECREMENT 1
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
-
#define MAX_REGS_PER_ADDRESS 1
#ifdef REG_OK_STRICT
Index: gcc/config/fr30/fr30.h
===================================================================
--- gcc/config/fr30/fr30.h (revision 152972)
+++ gcc/config/fr30/fr30.h (working copy)
@@ -741,16 +741,6 @@
/*}}}*/ \f
/*{{{ Addressing Modes. */
-/* A C expression that is 1 if the RTX X is a constant which is a valid
- address. On most machines, this can be defined as `CONSTANT_P (X)', but a
- few machines are more restrictive in which constant addresses are supported.
-
- `CONSTANT_P' accepts integer-values expressions whose values are not
- explicitly known, such as `symbol_ref', `label_ref', and `high' expressions
- and `const' arithmetic expressions, in addition to `const_int' and
- `const_double' expressions. */
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
-
/* A number, the maximum number of registers that can appear in a valid memory
address. Note that it is up to you to specify a value equal to the maximum
number that `GO_IF_LEGITIMATE_ADDRESS' would ever accept. */
Index: gcc/config/moxie/moxie.h
===================================================================
--- gcc/config/moxie/moxie.h (revision 152972)
+++ gcc/config/moxie/moxie.h (working copy)
@@ -475,10 +475,6 @@
an immediate operand on the target machine. */
#define LEGITIMATE_CONSTANT_P(X) 1
-/* A C expression that is 1 if the RTX X is a constant which is a
- valid address. */
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P(X)
-
/* A number, the maximum number of registers that can appear in a
valid memory address. */
#define MAX_REGS_PER_ADDRESS 1
Index: gcc/config/m68hc11/m68hc11.h
===================================================================
--- gcc/config/m68hc11/m68hc11.h (revision 152972)
+++ gcc/config/m68hc11/m68hc11.h (working copy)
@@ -1108,9 +1108,6 @@
&& (GET_CODE (XEXP (operand, 0)) == POST_INC) \
&& (SP_REG_P (XEXP (XEXP (operand, 0), 0))))
-/* 1 if X is an rtx for a constant that is a valid address. */
-#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X))
-
/* Maximum number of registers that can appear in a valid memory address */
#define MAX_REGS_PER_ADDRESS 2
Index: gcc/config/cris/cris.h
===================================================================
--- gcc/config/cris/cris.h (revision 152972)
+++ gcc/config/cris/cris.h (working copy)
@@ -956,8 +956,6 @@
#define HAVE_POST_INCREMENT 1
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
-
/* Must be a compile-time constant, so we go with the highest value
among all CRIS variants. */
#define MAX_REGS_PER_ADDRESS 2
Index: gcc/config/mn10300/mn10300.h
===================================================================
--- gcc/config/mn10300/mn10300.h (revision 152972)
+++ gcc/config/mn10300/mn10300.h (working copy)
@@ -618,10 +618,6 @@
? gen_rtx_MEM (Pmode, arg_pointer_rtx) \
: (rtx) 0)
\f
-/* 1 if X is an rtx for a constant that is a valid address. */
-
-#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
-
/* Maximum number of registers that can appear in a valid memory address. */
#define MAX_REGS_PER_ADDRESS 2
Index: gcc/config/picochip/picochip.h
===================================================================
--- gcc/config/picochip/picochip.h (revision 152972)
+++ gcc/config/picochip/picochip.h (working copy)
@@ -471,8 +471,6 @@
\f
/* Addressing Modes */
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P(X)
-
#define MAX_REGS_PER_ADDRESS 1
/* Legitimize reload address tries machine dependent means of
Index: gcc/config/score/score.h
===================================================================
--- gcc/config/score/score.h (revision 152972)
+++ gcc/config/score/score.h (working copy)
@@ -688,9 +688,6 @@
#define HAVE_PRE_MODIFY_REG 0
#define HAVE_POST_MODIFY_REG 0
-/* Recognize any constant value that is a valid address. */
-#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
-
/* Maximum number of registers that can appear in a valid memory address. */
#define MAX_REGS_PER_ADDRESS 1
Index: gcc/config/bfin/bfin.h
===================================================================
--- gcc/config/bfin/bfin.h (revision 152972)
+++ gcc/config/bfin/bfin.h (working copy)
@@ -911,9 +911,6 @@
/* Addressing Modes */
-/* Recognize any constant value that is a valid address. */
-#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X))
-
/* Nonzero if the constant value X is a legitimate general operand.
symbol_ref are not legitimate and will be put into constant pool.
See force_const_mem().
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFA: Provide a default definition of CONSTANT_ADDRESS_P
2009-10-20 9:01 RFA: Provide a default definition of CONSTANT_ADDRESS_P Nick Clifton
@ 2009-10-20 9:38 ` Hans-Peter Nilsson
2009-10-20 15:23 ` Hans-Peter Nilsson
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Hans-Peter Nilsson @ 2009-10-20 9:38 UTC (permalink / raw)
To: nickc; +Cc: gcc-patches
> From: Nick Clifton <nickc@redhat.com>
> Date: Tue, 20 Oct 2009 09:46:09 +0100
> Tested by building the following targets: avr-elf, bfin-elf,
> cris-elf, fr30-elf, frv-elf, m32c-elf, m68hc12-elf, mep-elf,
> mn10300-elf, moxie-elf, pdp11-aout, picochip-elf, score-elf,
> xstormy16-elf.
> * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
> Make sure that it does not allow CONST_DOUBLEs.
> * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
I was going to suggest something more substantial than "make
all-gcc" (which I assume you mean by "build"), like running the
test-suite, all the bits being in place and all that, but...
> * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
> * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
...as this is functionally nothing more than a move of the
macro: ok, no worries.
brgds, H-P
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFA: Provide a default definition of CONSTANT_ADDRESS_P
2009-10-20 9:01 RFA: Provide a default definition of CONSTANT_ADDRESS_P Nick Clifton
2009-10-20 9:38 ` Hans-Peter Nilsson
@ 2009-10-20 15:23 ` Hans-Peter Nilsson
2009-11-04 11:10 ` Nick Clifton
2009-10-22 8:46 ` Hariharan Sandanagobalane
2009-11-03 23:10 ` Jeff Law
3 siblings, 1 reply; 6+ messages in thread
From: Hans-Peter Nilsson @ 2009-10-20 15:23 UTC (permalink / raw)
To: nickc; +Cc: gcc-patches
> From: Nick Clifton <nickc@redhat.com>
> Date: Tue, 20 Oct 2009 09:46:09 +0100
> Index: gcc/defaults.h
> ===================================================================
> --- gcc/defaults.h (revision 152972)
> +++ gcc/defaults.h (working copy)
> @@ -1154,4 +1154,10 @@
> #define GO_IF_MODE_DEPENDENT_ADDRESS(X, WIN)
> #endif
>
> +/* For most ports anything that evaluates to a constant symbolic
> + or integer value is acceptable as a constant address. */
> +#ifndef CONSTANT_ADDRESS_P
> +#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
> +#endif
> +
Wait, shouldn't that be
#define CONSTANT_ADDRESS_P(X) \
(CONSTANT_P (X) && LEGITIMATE_CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
? Beware, you're going to have to actually test that.
At some point I have to submit the gcc TLS-patches for CRIS;
they're for CRIS v32 only at the moment. There, I have to
define CONSTANT_ADDRESS_P so as not to allow thread variables
that haven't been UNSPEC-adorned (through the movsi-expander).
But, when doing that and other needs to define
CONSTANT_ADDRESS_P, it'd help being able to include the default
definition, in case someone in the future finds out that it's
probably a good idea to also exclude, uh... (looking),
CONST_VECTOR and CONST_FIXED. ;)
Is it too late to ask for some variant of:
#define DEFAULT_CONSTANT_ADDRESS_P(X) \
(CONSTANT_P (X) && LEGITIMATE_CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
#ifndef CONSTANT_ADDRESS_P
#define CONSTANT_ADDRESS_P(X) DEFAULT_CONSTANT_ADDRESS_P (X)
#endif
?
PS. The documentation for LEGITIMATE_CONSTANT_P lies; you *have*
to define it to other than 1 in order to implement TLS. But
that's another story.
brgds, H-P
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFA: Provide a default definition of CONSTANT_ADDRESS_P
2009-10-20 9:01 RFA: Provide a default definition of CONSTANT_ADDRESS_P Nick Clifton
2009-10-20 9:38 ` Hans-Peter Nilsson
2009-10-20 15:23 ` Hans-Peter Nilsson
@ 2009-10-22 8:46 ` Hariharan Sandanagobalane
2009-11-03 23:10 ` Jeff Law
3 siblings, 0 replies; 6+ messages in thread
From: Hariharan Sandanagobalane @ 2009-10-22 8:46 UTC (permalink / raw)
To: Nick Clifton; +Cc: gcc-patches, Hari, Daniel Towner
This is okay (for picochip port).
Cheers
Hari
Nick Clifton wrote:
> Hi Guys,
>
> This is a follow up to a comment from Jeff Law about a patch I
> created for the MN10300 port. We found that for that port that its
> definition of CONSTANT_ADDRESS_P() as just CONSTANT_P() was a little
> bit too permissive. In particular it was allowing CONST_DOUBLEs to
> be treated as constant addresses which tended to confuse other parts
> of the compiler.
>
> It turns out that quite a few backends use this definition of
> CONSTANT_ADDRESS_P. It is suggested in the tm.texi documentation
> which is probably why it has happened. So I am seeking approval for
> the attached patch to address the problem. It does two things:
> Firstly it provides a default definition of CONSTANT_ADDRESS_P in
> defaults.h which includes a test to make sure that CONST_DOUBLEs are
> not allowed. Secondly it updates all of the backends which used to
> define CONSTANT_ADDRESS_P as CONSTANT_P so that they now use this
> default definition.
>
> Tested by building the following targets: avr-elf, bfin-elf,
> cris-elf, fr30-elf, frv-elf, m32c-elf, m68hc12-elf, mep-elf,
> mn10300-elf, moxie-elf, pdp11-aout, picochip-elf, score-elf,
> xstormy16-elf.
>
> I also ran an x86 bootstrap just to make sure that the change to
> defaults.h did not break anything - it did not.
>
> OK to apply ?
>
> Cheers
> Nick
>
> gcc/ChangeLog
> 2009-10-20 Nick Clifton <nickc@redhat.com>
>
> * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
> Make sure that it does not allow CONST_DOUBLEs.
> * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
> * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
> * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
> * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
> * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
> * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
> * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
> * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
> * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
> * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
> * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
> * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
> * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
> * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
> * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFA: Provide a default definition of CONSTANT_ADDRESS_P
2009-10-20 9:01 RFA: Provide a default definition of CONSTANT_ADDRESS_P Nick Clifton
` (2 preceding siblings ...)
2009-10-22 8:46 ` Hariharan Sandanagobalane
@ 2009-11-03 23:10 ` Jeff Law
3 siblings, 0 replies; 6+ messages in thread
From: Jeff Law @ 2009-11-03 23:10 UTC (permalink / raw)
To: Nick Clifton
Cc: gcc-patches, chertykov, aesok, bernd.schmidt, hp, dj, stcarrez,
aoliva, green, ni1d, hariharan, dant
On 10/20/09 02:46, Nick Clifton wrote:
> Hi Guys,
>
> This is a follow up to a comment from Jeff Law about a patch I
> created for the MN10300 port. We found that for that port that its
> definition of CONSTANT_ADDRESS_P() as just CONSTANT_P() was a little
> bit too permissive. In particular it was allowing CONST_DOUBLEs to
> be treated as constant addresses which tended to confuse other parts
> of the compiler.
>
> It turns out that quite a few backends use this definition of
> CONSTANT_ADDRESS_P. It is suggested in the tm.texi documentation
> which is probably why it has happened. So I am seeking approval for
> the attached patch to address the problem. It does two things:
> Firstly it provides a default definition of CONSTANT_ADDRESS_P in
> defaults.h which includes a test to make sure that CONST_DOUBLEs are
> not allowed. Secondly it updates all of the backends which used to
> define CONSTANT_ADDRESS_P as CONSTANT_P so that they now use this
> default definition.
>
> Tested by building the following targets: avr-elf, bfin-elf,
> cris-elf, fr30-elf, frv-elf, m32c-elf, m68hc12-elf, mep-elf,
> mn10300-elf, moxie-elf, pdp11-aout, picochip-elf, score-elf,
> xstormy16-elf.
>
> I also ran an x86 bootstrap just to make sure that the change to
> defaults.h did not break anything - it did not.
>
> OK to apply ?
>
> Cheers
> Nick
>
> gcc/ChangeLog
> 2009-10-20 Nick Clifton<nickc@redhat.com>
>
> * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
> Make sure that it does not allow CONST_DOUBLEs.
> * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
> * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
> * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
> * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
> * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
> * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
> * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
> * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
> * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
> * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
> * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
> * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
> * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
> * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
> * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
>
>
OK
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFA: Provide a default definition of CONSTANT_ADDRESS_P
2009-10-20 15:23 ` Hans-Peter Nilsson
@ 2009-11-04 11:10 ` Nick Clifton
0 siblings, 0 replies; 6+ messages in thread
From: Nick Clifton @ 2009-11-04 11:10 UTC (permalink / raw)
To: Hans-Peter Nilsson; +Cc: gcc-patches
Hi Hans-Peter,
> Wait, shouldn't that be
> #define CONSTANT_ADDRESS_P(X) \
> (CONSTANT_P (X) && LEGITIMATE_CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
> ? Beware, you're going to have to actually test that.
Yes it probably should. I didn't to risk breaking things though, so I
just the "default" definition of CONSTANT_P and added the check for
CONST_DOUBLES. At some point, in my copious free time, I will have a go
at adding the LEGITIMATE_CONSTANT_P and see if that breaks (or fixes)
anything.
Cheers
Nick
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-11-04 11:10 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-20 9:01 RFA: Provide a default definition of CONSTANT_ADDRESS_P Nick Clifton
2009-10-20 9:38 ` Hans-Peter Nilsson
2009-10-20 15:23 ` Hans-Peter Nilsson
2009-11-04 11:10 ` Nick Clifton
2009-10-22 8:46 ` Hariharan Sandanagobalane
2009-11-03 23:10 ` Jeff Law
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).