This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa] Remove CONSTANT_P_RTX
- From: bonzini <paolo dot bonzini at polimi dot it>
- To: gcc-patches at gcc dot gnu dot org, dnovillo at redhat dot com
- Date: Mon, 15 Mar 2004 14:01:01 +0100
- Subject: [tree-ssa] Remove CONSTANT_P_RTX
- Reply-to: bonzini at gnu dot org
As discussed in the merge status thread. The ramifications of this
stuff in the back-ends are close to obscene.
Bootstrapped i686-pc-linux-gnu, regtesting in progress. Ok if it
passes? (In the meanwhile, if people want to try compiling cc1 on their
favorite architectures, if affected...)
Paolo
2004-03-15 Paolo Bonzini <bonzini@gnu.org>
* builtins.c (expand_builtin_constant_p,
purge_builtin_constant_p): Remove.
(expand_builtin): Expand __builtin_constant_p to zero.
* function.c (struct function): Remove calls_constant_p.
(current_function_calls_constant_p): Remove.
* passes.c (rest_of_handle_gcse): Do not run
purge_builtin_constant_p.
* rtl.def (CONSTANT_P_RTX): Die die die.
* cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
* expr.c (emit_move_insn): Likewise.
* gcse.c (want_to_gcse_p, gcse_constant_p): Likewise.
* genrecog.c (validate_pattern): Likewise.
* recog.c (immediate_operand): Likewise.
* rtl.h (CONSTANT_P): Likewise.
* simplify-rtx.c (simplify_rtx): Likewise.
* config/alpha/alpha.c (input_operand): Likewise.
* config/arm/arm.c (THUMB_LEGITIMATE_CONSTANT_P): Likewise.
* config/c4x/c4x.c (const_operand): Likewise.
* config/cris/cris.c (cris_gotless_symbol,
cris_got_symbol): Likewise.
* config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
* config/ia64/ia64.c (gr_reg_or_5bit_operand,
gr_reg_or_6bit_operand, gr_reg_or_8bit_operand,
gr_reg_or_8bit_adjusted_operand,
gr_reg_or_8bit_and_adjusted_operand,
gr_reg_or_14bit_operand, gr_reg_or_22bit_operand,
shift_count_operand, shift_32bit_count_operand): Likewise.
* config/m32r/m32r.c (move_src_operand): Likewise.
* config/mips/mips.c (mips_const_insns): Likewise.
* config/mmix/mmix.c (mmix_constant_address_p): Likewise.
* config/pa/pa.c (move_src_operand): Likewise.
* config/rs6000/rs6000.c (input_operand): Likewise.
* config/sparc/sparc.c (input_operand): Likewise.
* config/v850/v850.c (movsi_source_operand): Likewise.
* config/xtensa/xtensa.c (move_operand,
xtensa_emit_move_sequence): Likewise.
* config/ia64/ia64.h (PREDICATE_CODES): Do not mention CONSTANT_P_RTX.
* config/pa/pa.h (PREDICATE_CODES): Likewise.
Index: builtins.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/builtins.c,v
retrieving revision 1.152.2.55
diff -u -p -r1.152.2.55 builtins.c
--- builtins.c 8 Mar 2004 18:05:29 -0000 1.152.2.55
+++ builtins.c 15 Mar 2004 12:29:34 -0000
@@ -93,7 +93,6 @@ static rtx expand_builtin_classify_type
static void expand_errno_check (tree, rtx);
static rtx expand_builtin_mathfn (tree, rtx, rtx);
static rtx expand_builtin_mathfn_2 (tree, rtx, rtx);
-static rtx expand_builtin_constant_p (tree, enum machine_mode);
static rtx expand_builtin_args_info (tree);
static rtx expand_builtin_next_arg (tree);
static rtx expand_builtin_va_start (tree);
@@ -1518,32 +1517,6 @@ expand_builtin_classify_type (tree argli
return GEN_INT (no_type_class);
}
-/* Expand expression EXP, which is a call to __builtin_constant_p. */
-
-static rtx
-expand_builtin_constant_p (tree arglist, enum machine_mode target_mode)
-{
- rtx tmp;
-
- if (arglist == 0)
- return const0_rtx;
- arglist = TREE_VALUE (arglist);
-
- /* We have taken care of the easy cases during constant folding. This
- case is not obvious, so emit (constant_p_rtx (ARGLIST)) and let CSE
- get a chance to see if it can deduce whether ARGLIST is constant.
- If CSE isn't going to run, of course, don't bother waiting. */
-
- if (cse_not_expected)
- return const0_rtx;
-
- current_function_calls_constant_p = 1;
-
- tmp = expand_expr (arglist, NULL_RTX, VOIDmode, 0);
- tmp = gen_rtx_CONSTANT_P_RTX (target_mode, tmp);
- return tmp;
-}
-
/* This helper macro, meant to be used in mathfn_built_in below,
determines which among a set of three builtin math functions is
appropriate for a given type mode. The `F' and `L' cases are
@@ -5437,7 +5410,7 @@ expand_builtin (tree exp, rtx target, rt
return expand_builtin_classify_type (arglist);
case BUILT_IN_CONSTANT_P:
- return expand_builtin_constant_p (arglist, target_mode);
+ return const0_rtx;
case BUILT_IN_FRAME_ADDRESS:
case BUILT_IN_RETURN_ADDRESS:
@@ -7453,31 +7426,6 @@ default_expand_builtin (tree exp ATTRIBU
int ignore ATTRIBUTE_UNUSED)
{
return NULL_RTX;
-}
-
-/* Instantiate all remaining CONSTANT_P_RTX nodes. */
-
-void
-purge_builtin_constant_p (void)
-{
- rtx insn, set, arg, new, note;
-
- for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
- if (INSN_P (insn)
- && (set = single_set (insn)) != NULL_RTX
- && (GET_CODE (arg = SET_SRC (set)) == CONSTANT_P_RTX
- || (GET_CODE (arg) == SUBREG
- && (GET_CODE (arg = SUBREG_REG (arg))
- == CONSTANT_P_RTX))))
- {
- arg = XEXP (arg, 0);
- new = CONSTANT_P (arg) ? const1_rtx : const0_rtx;
- validate_change (insn, &SET_SRC (set), new, 0);
-
- /* Remove the REG_EQUAL note from the insn. */
- if ((note = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0)
- remove_note (insn, note);
- }
}
/* Returns true is EXP represents data that would potentially reside
Index: cse.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cse.c,v
retrieving revision 1.229.2.31
diff -u -p -r1.229.2.31 cse.c
--- cse.c 5 Mar 2004 23:48:13 -0000 1.229.2.31
+++ cse.c 15 Mar 2004 12:29:36 -0000
@@ -4156,17 +4156,6 @@ fold_rtx (rtx x, rtx insn)
const_arg2 ? const_arg2 : XEXP (x, 2));
break;
- case RTX_EXTRA:
- /* Eliminate CONSTANT_P_RTX if its constant. */
- if (code == CONSTANT_P_RTX)
- {
- if (const_arg0)
- return const1_rtx;
- if (optimize == 0 || !flag_gcse)
- return const0_rtx;
- }
- break;
-
default:
break;
}
Index: expr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expr.c,v
retrieving revision 1.467.2.82
diff -u -p -r1.467.2.82 expr.c
--- expr.c 5 Mar 2004 23:48:13 -0000 1.467.2.82
+++ expr.c 15 Mar 2004 12:29:39 -0000
@@ -2778,10 +2778,7 @@ emit_move_insn (rtx x, rtx y)
if (mode == BLKmode || (GET_MODE (y) != mode && GET_MODE (y) != VOIDmode))
abort ();
- /* Never force constant_p_rtx to memory. */
- if (GET_CODE (y) == CONSTANT_P_RTX)
- ;
- else if (CONSTANT_P (y))
+ if (CONSTANT_P (y))
{
if (optimize
&& SCALAR_FLOAT_MODE_P (GET_MODE (x))
Index: function.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.h,v
retrieving revision 1.83.2.29
diff -u -p -r1.83.2.29 function.h
--- function.h 19 Feb 2004 09:05:28 -0000 1.83.2.29
+++ function.h 15 Mar 2004 12:29:39 -0000
@@ -436,9 +436,6 @@ struct function GTY(())
/* Nonzero if the function calls __builtin_eh_return. */
unsigned int calls_eh_return : 1;
- /* Nonzero if the function calls __builtin_constant_p. */
- unsigned int calls_constant_p : 1;
-
/* Nonzero if function being compiled receives nonlocal gotos
from nested functions. */
unsigned int has_nonlocal_label : 1;
@@ -529,7 +526,6 @@ extern int trampolines_created;
#define current_function_calls_alloca (cfun->calls_alloca)
#define current_function_calls_longjmp (cfun->calls_longjmp)
#define current_function_calls_eh_return (cfun->calls_eh_return)
-#define current_function_calls_constant_p (cfun->calls_constant_p)
#define current_function_has_computed_jump (cfun->has_computed_jump)
#define current_function_contains_functions (cfun->contains_functions)
#define current_function_is_thunk (cfun->is_thunk)
Index: gcse.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gcse.c,v
retrieving revision 1.205.2.35
diff -u -p -r1.205.2.35 gcse.c
--- gcse.c 5 Mar 2004 23:48:14 -0000 1.205.2.35
+++ gcse.c 15 Mar 2004 12:29:42 -0000
@@ -1284,7 +1284,6 @@ want_to_gcse_p (rtx x)
case CONST_DOUBLE:
case CONST_VECTOR:
case CALL:
- case CONSTANT_P_RTX:
return 0;
default:
@@ -2130,9 +2129,6 @@ gcse_constant_p (rtx x)
&& ! FLOAT_MODE_P (GET_MODE (XEXP (x, 0)))
&& ! FLOAT_MODE_P (GET_MODE (XEXP (x, 1))))
return true;
-
- if (GET_CODE (x) == CONSTANT_P_RTX)
- return false;
return CONSTANT_P (x);
}
Index: genrecog.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genrecog.c,v
retrieving revision 1.118.2.15
diff -u -p -r1.118.2.15 genrecog.c
--- genrecog.c 4 Mar 2004 15:38:47 -0000 1.118.2.15
+++ genrecog.c 15 Mar 2004 12:29:42 -0000
@@ -513,8 +513,7 @@ validate_pattern (rtx pattern, rtx insn,
&& c != CONST_INT
&& c != CONST_DOUBLE
&& c != CONST
- && c != HIGH
- && c != CONSTANT_P_RTX)
+ && c != HIGH)
allows_non_const = 1;
if (c != REG
Index: passes.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/passes.c,v
retrieving revision 2.2.2.2
diff -u -p -r2.2.2.2 passes.c
--- passes.c 4 Mar 2004 15:38:49 -0000 2.2.2.2
+++ passes.c 15 Mar 2004 12:29:43 -0000
@@ -1191,10 +1191,6 @@ rest_of_handle_gcse (tree decl, rtx insn
save_cfj = flag_cse_follow_jumps;
flag_cse_skip_blocks = flag_cse_follow_jumps = 0;
- /* Instantiate any remaining CONSTANT_P_RTX nodes. */
- if (current_function_calls_constant_p)
- purge_builtin_constant_p ();
-
/* If -fexpensive-optimizations, re-run CSE to clean up things done
by gcse. */
if (flag_expensive_optimizations)
Index: recog.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/recog.c,v
retrieving revision 1.159.2.23
diff -u -p -r1.159.2.23 recog.c
--- recog.c 4 Mar 2004 15:38:50 -0000 1.159.2.23
+++ recog.c 15 Mar 2004 12:29:44 -0000
@@ -1114,12 +1114,6 @@ immediate_operand (rtx op, enum machine_
&& trunc_int_for_mode (INTVAL (op), mode) != INTVAL (op))
return 0;
- /* Accept CONSTANT_P_RTX, since it will be gone by CSE1 and
- result in 0/1. It seems a safe assumption that this is
- in range for everyone. */
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
return (CONSTANT_P (op)
&& (GET_MODE (op) == mode || mode == VOIDmode
|| GET_MODE (op) == VOIDmode)
Index: rtl.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/rtl.def,v
retrieving revision 1.57.2.17
diff -u -p -r1.57.2.17 rtl.def
--- rtl.def 4 Mar 2004 15:38:52 -0000 1.57.2.17
+++ rtl.def 15 Mar 2004 12:29:44 -0000
@@ -1153,11 +1153,6 @@ DEF_RTL_EXPR(RANGE_VAR, "range_var", "et
0 is the live bitmap. Operand 1 is the original block number. */
DEF_RTL_EXPR(RANGE_LIVE, "range_live", "bi", RTX_EXTRA)
-/* A unary `__builtin_constant_p' expression. These are only emitted
- during RTL generation, and then only if optimize > 0. They are
- eliminated by the first CSE pass. */
-DEF_RTL_EXPR(CONSTANT_P_RTX, "constant_p_rtx", "e", RTX_EXTRA)
-
/* A placeholder for a CALL_INSN which may be turned into a normal call,
a sibling (tail) call or tail recursion.
Index: rtl.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/rtl.h,v
retrieving revision 1.362.2.41
diff -u -p -r1.362.2.41 rtl.h
--- rtl.h 8 Mar 2004 18:05:41 -0000 1.362.2.41
+++ rtl.h 15 Mar 2004 12:29:45 -0000
@@ -385,8 +385,7 @@ struct rtvec_def GTY(()) {
#define CONSTANT_P(X) \
(GET_RTX_CLASS (GET_CODE (X)) == RTX_CONST_OBJ \
- || GET_CODE (X) == CONST_VECTOR \
- || GET_CODE (X) == CONSTANT_P_RTX)
+ || GET_CODE (X) == CONST_VECTOR)
/* 1 if X can be used to represent an object. */
#define OBJECT_P(X) \
Index: simplify-rtx.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/simplify-rtx.c,v
retrieving revision 1.107.2.30
diff -u -p -r1.107.2.30 simplify-rtx.c
--- simplify-rtx.c 5 Mar 2004 23:48:17 -0000 1.107.2.30
+++ simplify-rtx.c 15 Mar 2004 12:29:46 -0000
@@ -3584,11 +3584,6 @@ simplify_rtx (rtx x)
return simplify_gen_subreg (mode, SUBREG_REG (x),
GET_MODE (SUBREG_REG (x)),
SUBREG_BYTE (x));
- if (code == CONSTANT_P_RTX)
- {
- if (CONSTANT_P (XEXP (x, 0)))
- return const1_rtx;
- }
break;
case RTX_OBJ:
Index: config/alpha/alpha.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.c,v
retrieving revision 1.359
diff -u -p -r1.359 alpha.c
--- config/alpha/alpha.c 12 Mar 2004 10:03:07 -0000 1.359
+++ config/alpha/alpha.c 15 Mar 2004 12:35:59 -0000
@@ -801,9 +801,6 @@ input_operand (rtx op, enum machine_mode
case CONST_INT:
return mode == QImode || mode == HImode || add_operand (op, mode);
- case CONSTANT_P_RTX:
- return 1;
-
default:
break;
}
Index: config/arm/arm.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.h,v
retrieving revision 1.227
diff -u -p -r1.227 arm.h
--- config/arm/arm.h 14 Mar 2004 00:23:03 -0000 1.227
+++ config/arm/arm.h 15 Mar 2004 12:36:01 -0000
@@ -2232,7 +2232,6 @@ typedef struct
#define THUMB_LEGITIMATE_CONSTANT_P(X) \
( GET_CODE (X) == CONST_INT \
|| GET_CODE (X) == CONST_DOUBLE \
- || GET_CODE (X) == CONSTANT_P_RTX \
|| CONSTANT_ADDRESS_P (X) \
|| flag_pic)
Index: config/c4x/c4x.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/c4x/c4x.c,v
retrieving revision 1.146
diff -u -p -r1.146 c4x.c
--- config/c4x/c4x.c 11 Mar 2004 05:54:29 -0000 1.146
+++ config/c4x/c4x.c 15 Mar 2004 12:36:02 -0000
@@ -2940,9 +2940,6 @@ const_operand (register rtx op, register
case Pmode:
#endif
case QImode:
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
if (GET_CODE (op) != CONST_INT
|| (GET_MODE (op) != VOIDmode && GET_MODE (op) != mode)
|| GET_MODE_CLASS (mode) != MODE_INT)
Index: config/cris/cris.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/cris/cris.c,v
retrieving revision 1.52
diff -u -p -r1.52 cris.c
--- config/cris/cris.c 11 Mar 2004 05:54:30 -0000 1.52
+++ config/cris/cris.c 15 Mar 2004 12:36:03 -0000
@@ -2488,7 +2488,6 @@ cris_symbol (rtx x)
case CONST_INT:
case CONST_DOUBLE:
- case CONSTANT_P_RTX:
return 0;
default:
@@ -2550,7 +2549,6 @@ cris_gotless_symbol (rtx x)
case CONST_INT:
case CONST_DOUBLE:
- case CONSTANT_P_RTX:
return 0;
default:
@@ -2595,7 +2593,6 @@ cris_got_symbol (rtx x)
case CONST_INT:
case CONST_DOUBLE:
- case CONSTANT_P_RTX:
return 0;
default:
Index: config/frv/frv.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/frv/frv.h,v
retrieving revision 1.42
diff -u -p -r1.42 frv.h
--- config/frv/frv.h 7 Mar 2004 20:23:28 -0000 1.42
+++ config/frv/frv.h 15 Mar 2004 12:36:07 -0000
@@ -2639,8 +2639,7 @@ fixup_section (void) \
( GET_CODE (X) == CONST_INT \
|| GET_CODE (X) == CONST_DOUBLE \
|| (GET_CODE (X) == HIGH && GET_CODE (XEXP (X, 0)) == CONST_INT) \
- || got12_operand (X, VOIDmode) \
- || GET_CODE (X) == CONSTANT_P_RTX)
+ || got12_operand (X, VOIDmode)) \
/* The Overall Framework of an Assembler File. */
Index: config/ia64/ia64.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v
retrieving revision 1.283
diff -u -p -r1.283 ia64.c
--- config/ia64/ia64.c 11 Mar 2004 19:21:19 -0000 1.283
+++ config/ia64/ia64.c 15 Mar 2004 12:36:14 -0000
@@ -715,7 +715,6 @@ int
gr_reg_or_5bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && INTVAL (op) >= 0 && INTVAL (op) < 32)
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -725,7 +724,6 @@ int
gr_reg_or_6bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -735,7 +733,6 @@ int
gr_reg_or_8bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -745,7 +742,6 @@ int
grfr_reg_or_8bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| grfr_register_operand (op, mode));
}
@@ -756,7 +752,6 @@ int
gr_reg_or_8bit_adjusted_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_L (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -770,7 +765,6 @@ gr_reg_or_8bit_and_adjusted_operand (rtx
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op))
&& CONST_OK_FOR_L (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -780,7 +774,6 @@ int
gr_reg_or_14bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_I (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -790,7 +783,6 @@ int
gr_reg_or_22bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_J (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -799,8 +791,7 @@ gr_reg_or_22bit_operand (rtx op, enum ma
int
shift_count_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
- return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX);
+ return (GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op)));
}
/* Return 1 if OP is a 5 bit immediate operand. */
@@ -808,9 +799,8 @@ shift_count_operand (rtx op, enum machin
int
shift_32bit_count_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
- return ((GET_CODE (op) == CONST_INT
- && (INTVAL (op) >= 0 && INTVAL (op) < 32))
- || GET_CODE (op) == CONSTANT_P_RTX);
+ return (GET_CODE (op) == CONST_INT
+ && (INTVAL (op) >= 0 && INTVAL (op) < 32));
}
/* Return 1 if OP is a 2, 4, 8, or 16 immediate operand. */
Index: config/ia64/ia64.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.h,v
retrieving revision 1.174
diff -u -p -r1.174 ia64.h
--- config/ia64/ia64.h 11 Mar 2004 19:21:19 -0000 1.174
+++ config/ia64/ia64.h 15 Mar 2004 12:36:15 -0000
@@ -2178,7 +2178,7 @@ do { \
{ "destination_operand", {SUBREG, REG, MEM}}, \
{ "not_postinc_memory_operand", {MEM}}, \
{ "move_operand", {SUBREG, REG, MEM, CONST_INT, CONST_DOUBLE, \
- CONSTANT_P_RTX, SYMBOL_REF, CONST, LABEL_REF}}, \
+ SYMBOL_REF, CONST, LABEL_REF}}, \
{ "gr_register_operand", {SUBREG, REG}}, \
{ "fr_register_operand", {SUBREG, REG}}, \
{ "grfr_register_operand", {SUBREG, REG}}, \
@@ -2186,19 +2186,16 @@ do { \
{ "fr_nonimmediate_operand", {SUBREG, REG, MEM}}, \
{ "grfr_nonimmediate_operand", {SUBREG, REG, MEM}}, \
{ "gr_reg_or_0_operand", {SUBREG, REG, CONST_INT}}, \
-{ "gr_reg_or_5bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "gr_reg_or_6bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "gr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "grfr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "gr_reg_or_8bit_adjusted_operand", {SUBREG, REG, CONST_INT, \
- CONSTANT_P_RTX}}, \
-{ "gr_reg_or_8bit_and_adjusted_operand", {SUBREG, REG, CONST_INT, \
- CONSTANT_P_RTX}}, \
-{ "gr_reg_or_14bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "gr_reg_or_22bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "shift_count_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "shift_32bit_count_operand", {SUBREG, REG, CONST_INT, \
- CONSTANT_P_RTX}}, \
+{ "gr_reg_or_5bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_6bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "grfr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_8bit_adjusted_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_8bit_and_adjusted_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_14bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_22bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "shift_count_operand", {SUBREG, REG, CONST_INT}}, \
+{ "shift_32bit_count_operand", {SUBREG, REG, CONST_INT}}, \
{ "shladd_operand", {CONST_INT}}, \
{ "fetchadd_operand", {CONST_INT}}, \
{ "fr_reg_or_fp01_operand", {SUBREG, REG, CONST_DOUBLE}}, \
Index: config/m32r/m32r.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m32r/m32r.c,v
retrieving revision 1.90
diff -u -p -r1.90 m32r.c
--- config/m32r/m32r.c 5 Mar 2004 05:37:20 -0000 1.90
+++ config/m32r/m32r.c 15 Mar 2004 12:36:15 -0000
@@ -771,8 +771,6 @@ move_src_operand (rtx op, enum machine_m
}
else
return 1;
- case CONSTANT_P_RTX:
- return 1;
case CONST_DOUBLE :
if (mode == SFmode)
return 1;
Index: config/mips/mips.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.c,v
retrieving revision 1.396
diff -u -p -r1.396 mips.c
--- config/mips/mips.c 11 Mar 2004 08:25:27 -0000 1.396
+++ config/mips/mips.c 15 Mar 2004 12:36:19 -0000
@@ -1235,9 +1235,6 @@ mips_const_insns (rtx x)
switch (GET_CODE (x))
{
- case CONSTANT_P_RTX:
- return 1;
-
case HIGH:
if (TARGET_MIPS16
|| !mips_symbolic_constant_p (XEXP (x, 0), &symbol_type)
Index: config/mmix/mmix.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mmix/mmix.c,v
retrieving revision 1.62
diff -u -p -r1.62 mmix.c
--- config/mmix/mmix.c 11 Mar 2004 05:54:32 -0000 1.62
+++ config/mmix/mmix.c 15 Mar 2004 12:36:19 -0000
@@ -1008,7 +1008,6 @@ mmix_constant_address_p (rtx x)
case SYMBOL_REF:
return 1;
- case CONSTANT_P_RTX:
case HIGH:
/* FIXME: Don't know how to dissect these. Avoid them for now,
except we know they're constants. */
Index: config/pa/pa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.246
diff -u -p -r1.246 pa.c
--- config/pa/pa.c 11 Mar 2004 05:54:33 -0000 1.246
+++ config/pa/pa.c 15 Mar 2004 12:36:20 -0000
@@ -592,9 +592,6 @@ move_src_operand (rtx op, enum machine_m
if (register_operand (op, mode))
return 1;
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
if (GET_CODE (op) == CONST_INT)
return cint_ok_for_move (INTVAL (op));
Index: config/pa/pa.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.h,v
retrieving revision 1.217
diff -u -p -r1.217 pa.h
--- config/pa/pa.h 6 Mar 2004 19:27:52 -0000 1.217
+++ config/pa/pa.h 15 Mar 2004 12:36:21 -0000
@@ -1987,7 +1987,7 @@ do { \
#define PREDICATE_CODES \
{"reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_DOUBLE}}, \
{"call_operand_address", {LABEL_REF, SYMBOL_REF, CONST_INT, \
- CONST_DOUBLE, CONST, HIGH, CONSTANT_P_RTX}}, \
+ CONST_DOUBLE, CONST, HIGH}}, \
{"indexed_memory_operand", {SUBREG, MEM}}, \
{"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, \
{"symbolic_memory_operand", {SUBREG, MEM}}, \
@@ -1995,7 +1995,7 @@ do { \
{"reg_or_0_or_nonsymb_mem_operand", {SUBREG, REG, MEM, CONST_INT, \
CONST_DOUBLE}}, \
{"move_dest_operand", {SUBREG, REG, MEM}}, \
- {"move_src_operand", {SUBREG, REG, CONSTANT_P_RTX, CONST_INT, MEM}}, \
+ {"move_src_operand", {SUBREG, REG, CONST_INT, MEM}}, \
{"reg_or_cint_move_operand", {SUBREG, REG, CONST_INT}}, \
{"pic_label_operand", {LABEL_REF, CONST}}, \
{"fp_reg_operand", {REG}}, \
Index: config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.609
diff -u -p -r1.609 rs6000.c
--- config/rs6000/rs6000.c 13 Mar 2004 07:51:58 -0000 1.609
+++ config/rs6000/rs6000.c 15 Mar 2004 12:36:26 -0000
@@ -2295,10 +2302,6 @@ input_operand (rtx op, enum machine_mode
if (memory_operand (op, mode))
return 1;
- /* Only a tiny bit of handling for CONSTANT_P_RTX is necessary. */
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
/* For floating-point, easy constants are valid. */
if (GET_MODE_CLASS (mode) == MODE_FLOAT
&& CONSTANT_P (op)
@@ -3535,10 +3538,6 @@ rs6000_emit_move (rtx dest, rtx source,
|| ! nonimmediate_operand (operands[0], mode)))
goto emit_set;
- /* Handle the case of CONSTANT_P_RTX. */
- if (GET_CODE (operands[1]) == CONSTANT_P_RTX)
- goto emit_set;
-
/* 128-bit constant floating-point values on Darwin should really be
loaded as two parts. */
if ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)
Index: config/sparc/sparc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v
retrieving revision 1.295
diff -u -p -r1.295 sparc.c
--- config/sparc/sparc.c 10 Mar 2004 00:17:35 -0000 1.295
+++ config/sparc/sparc.c 15 Mar 2004 12:36:28 -0000
@@ -1295,10 +1295,6 @@ input_operand (rtx op, enum machine_mode
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
- /* Accept CONSTANT_P_RTX, since it will be gone by CSE1 and result in 0/1. */
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
/* Allow any one instruction integer constant, and all CONST_INT
variants when we are working in DImode and !arch64. */
if (GET_MODE_CLASS (mode) == MODE_INT
Index: config/v850/v850.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/v850/v850.c,v
retrieving revision 1.87
diff -u -p -r1.87 v850.c
--- config/v850/v850.c 23 Feb 2004 21:43:04 -0000 1.87
+++ config/v850/v850.c 15 Mar 2004 12:36:29 -0000
@@ -1136,7 +1136,6 @@ movsi_source_operand (rtx op, enum machi
must be done with HIGH & LO_SUM patterns. */
if (CONSTANT_P (op)
&& GET_CODE (op) != HIGH
- && GET_CODE (op) != CONSTANT_P_RTX
&& !(GET_CODE (op) == CONST_INT
&& (CONST_OK_FOR_J (INTVAL (op))
|| CONST_OK_FOR_K (INTVAL (op))
Index: config/xtensa/xtensa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/xtensa/xtensa.c,v
retrieving revision 1.54
diff -u -p -r1.54 xtensa.c
--- config/xtensa/xtensa.c 12 Mar 2004 10:03:32 -0000 1.54
+++ config/xtensa/xtensa.c 15 Mar 2004 12:36:30 -0000
@@ -627,11 +627,6 @@ move_operand (rtx op, enum machine_mode
case HImode:
case QImode:
- /* Accept CONSTANT_P_RTX, since it will be gone by CSE1 and
- result in 0/1. */
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return TRUE;
-
if (GET_CODE (op) == CONST_INT && xtensa_simm12b (INTVAL (op)))
return TRUE;
break;
@@ -1252,7 +1247,6 @@ int
xtensa_emit_move_sequence (rtx *operands, enum machine_mode mode)
{
if (CONSTANT_P (operands[1])
- && GET_CODE (operands[1]) != CONSTANT_P_RTX
&& (GET_CODE (operands[1]) != CONST_INT
|| !xtensa_simm12b (INTVAL (operands[1]))))
{