mirror of git://gcc.gnu.org/git/gcc.git
system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
gcc/ * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison. * genpreds.c (have_const_dbl_constraints): Delete. (add_constraint): Don't set it. (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P. * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE constraints using the lookup_constraint logic. * ira-lives.c (single_reg_class): Likewise. * ira.c (ira_setup_alts): Likewise. * lra-constraints.c (process_alt_operands): Likewise. * recog.c (asm_operand_ok, constrain_operands): Likewise. * reload.c (find_reloads): Likewise. From-SVN: r211474
This commit is contained in:
parent
d9c35eee65
commit
7fd308cffa
|
|
@ -1,3 +1,17 @@
|
||||||
|
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
|
* system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
|
||||||
|
* genpreds.c (have_const_dbl_constraints): Delete.
|
||||||
|
(add_constraint): Don't set it.
|
||||||
|
(write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
|
||||||
|
* ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
|
||||||
|
constraints using the lookup_constraint logic.
|
||||||
|
* ira-lives.c (single_reg_class): Likewise.
|
||||||
|
* ira.c (ira_setup_alts): Likewise.
|
||||||
|
* lra-constraints.c (process_alt_operands): Likewise.
|
||||||
|
* recog.c (asm_operand_ok, constrain_operands): Likewise.
|
||||||
|
* reload.c (find_reloads): Likewise.
|
||||||
|
|
||||||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
* genpreds.c (const_int_start, const_int_end): New variables.
|
* genpreds.c (const_int_start, const_int_end): New variables.
|
||||||
|
|
|
||||||
|
|
@ -684,7 +684,6 @@ static bool have_memory_constraints;
|
||||||
static bool have_address_constraints;
|
static bool have_address_constraints;
|
||||||
static bool have_extra_constraints;
|
static bool have_extra_constraints;
|
||||||
static bool have_const_int_constraints;
|
static bool have_const_int_constraints;
|
||||||
static bool have_const_dbl_constraints;
|
|
||||||
static unsigned int num_constraints;
|
static unsigned int num_constraints;
|
||||||
|
|
||||||
static const constraint_data **enum_order;
|
static const constraint_data **enum_order;
|
||||||
|
|
@ -888,7 +887,6 @@ add_constraint (const char *name, const char *regclass,
|
||||||
constraint_max_namelen = MAX (constraint_max_namelen, strlen (name));
|
constraint_max_namelen = MAX (constraint_max_namelen, strlen (name));
|
||||||
have_register_constraints |= c->is_register;
|
have_register_constraints |= c->is_register;
|
||||||
have_const_int_constraints |= c->is_const_int;
|
have_const_int_constraints |= c->is_const_int;
|
||||||
have_const_dbl_constraints |= c->is_const_dbl;
|
|
||||||
have_extra_constraints |= c->is_extra;
|
have_extra_constraints |= c->is_extra;
|
||||||
have_memory_constraints |= c->is_memory;
|
have_memory_constraints |= c->is_memory;
|
||||||
have_address_constraints |= c->is_address;
|
have_address_constraints |= c->is_address;
|
||||||
|
|
@ -1375,11 +1373,6 @@ write_tm_preds_h (void)
|
||||||
"{\n"
|
"{\n"
|
||||||
" return false;\n"
|
" return false;\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
if (have_const_dbl_constraints)
|
|
||||||
puts ("#define CONST_DOUBLE_OK_FOR_CONSTRAINT_P(v_,c_,s_) \\\n"
|
|
||||||
" constraint_satisfied_p (v_, lookup_constraint (s_))\n");
|
|
||||||
else
|
|
||||||
puts ("#define CONST_DOUBLE_OK_FOR_CONSTRAINT_P(v_,c_,s_) 0\n");
|
|
||||||
|
|
||||||
puts ("enum constraint_type\n"
|
puts ("enum constraint_type\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
|
|
|
||||||
|
|
@ -703,13 +703,6 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops,
|
||||||
win = 1;
|
win = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G':
|
|
||||||
case 'H':
|
|
||||||
if (CONST_DOUBLE_AS_FLOAT_P (op)
|
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (op, c, p))
|
|
||||||
win = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
if (CONST_SCALAR_INT_P (op))
|
if (CONST_SCALAR_INT_P (op))
|
||||||
break;
|
break;
|
||||||
|
|
@ -725,19 +718,6 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops,
|
||||||
win = 1;
|
win = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I':
|
|
||||||
case 'J':
|
|
||||||
case 'K':
|
|
||||||
case 'L':
|
|
||||||
case 'M':
|
|
||||||
case 'N':
|
|
||||||
case 'O':
|
|
||||||
case 'P':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), c, p))
|
|
||||||
win = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'X':
|
case 'X':
|
||||||
win = 1;
|
win = 1;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -801,23 +801,6 @@ single_reg_class (const char *constraints, rtx op, rtx equiv_const)
|
||||||
return NO_REGS;
|
return NO_REGS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I':
|
|
||||||
case 'J':
|
|
||||||
case 'K':
|
|
||||||
case 'L':
|
|
||||||
case 'M':
|
|
||||||
case 'N':
|
|
||||||
case 'O':
|
|
||||||
case 'P':
|
|
||||||
if ((CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), c, constraints))
|
|
||||||
|| (equiv_const != NULL_RTX
|
|
||||||
&& CONST_INT_P (equiv_const)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (equiv_const),
|
|
||||||
c, constraints)))
|
|
||||||
return NO_REGS;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'E':
|
case 'E':
|
||||||
case 'F':
|
case 'F':
|
||||||
if (CONST_DOUBLE_AS_FLOAT_P (op)
|
if (CONST_DOUBLE_AS_FLOAT_P (op)
|
||||||
|
|
@ -831,17 +814,9 @@ single_reg_class (const char *constraints, rtx op, rtx equiv_const)
|
||||||
return NO_REGS;
|
return NO_REGS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G':
|
case 'I': case 'J': case 'K': case 'L': case 'M': case 'N':
|
||||||
case 'H':
|
case 'O': case 'P':
|
||||||
if ((CONST_DOUBLE_AS_FLOAT_P (op)
|
case 'G': case 'H':
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (op, c, constraints))
|
|
||||||
|| (equiv_const != NULL_RTX
|
|
||||||
&& CONST_DOUBLE_AS_FLOAT_P (equiv_const)
|
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (equiv_const,
|
|
||||||
c, constraints)))
|
|
||||||
return NO_REGS;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'r':
|
case 'r':
|
||||||
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
|
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
|
||||||
case 'h': case 'j': case 'k': case 'l':
|
case 'h': case 'j': case 'k': case 'l':
|
||||||
|
|
|
||||||
20
gcc/ira.c
20
gcc/ira.c
|
|
@ -1883,13 +1883,6 @@ ira_setup_alts (rtx insn, HARD_REG_SET &alts)
|
||||||
goto op_success;
|
goto op_success;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G':
|
|
||||||
case 'H':
|
|
||||||
if (CONST_DOUBLE_AS_FLOAT_P (op)
|
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (op, c, p))
|
|
||||||
goto op_success;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
if (CONST_SCALAR_INT_P (op))
|
if (CONST_SCALAR_INT_P (op))
|
||||||
break;
|
break;
|
||||||
|
|
@ -1903,19 +1896,6 @@ ira_setup_alts (rtx insn, HARD_REG_SET &alts)
|
||||||
goto op_success;
|
goto op_success;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I':
|
|
||||||
case 'J':
|
|
||||||
case 'K':
|
|
||||||
case 'L':
|
|
||||||
case 'M':
|
|
||||||
case 'N':
|
|
||||||
case 'O':
|
|
||||||
case 'P':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), c, p))
|
|
||||||
goto op_success;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'V':
|
case 'V':
|
||||||
if (MEM_P (op) && ! offsettable_memref_p (op))
|
if (MEM_P (op) && ! offsettable_memref_p (op))
|
||||||
goto op_success;
|
goto op_success;
|
||||||
|
|
|
||||||
|
|
@ -1980,13 +1980,6 @@ process_alt_operands (int only_alternative)
|
||||||
win = true;
|
win = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G':
|
|
||||||
case 'H':
|
|
||||||
if (CONST_DOUBLE_AS_FLOAT_P (op)
|
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (op, c, p))
|
|
||||||
win = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
if (CONST_SCALAR_INT_P (op))
|
if (CONST_SCALAR_INT_P (op))
|
||||||
break;
|
break;
|
||||||
|
|
@ -2001,19 +1994,6 @@ process_alt_operands (int only_alternative)
|
||||||
win = true;
|
win = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I':
|
|
||||||
case 'J':
|
|
||||||
case 'K':
|
|
||||||
case 'L':
|
|
||||||
case 'M':
|
|
||||||
case 'N':
|
|
||||||
case 'O':
|
|
||||||
case 'P':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), c, p))
|
|
||||||
win = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'X':
|
case 'X':
|
||||||
/* This constraint should be excluded by the fast
|
/* This constraint should be excluded by the fast
|
||||||
track. */
|
track. */
|
||||||
|
|
|
||||||
72
gcc/recog.c
72
gcc/recog.c
|
|
@ -1827,17 +1827,6 @@ asm_operand_ok (rtx op, const char *constraint, const char **constraints)
|
||||||
result = 1;
|
result = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G':
|
|
||||||
if (CONST_DOUBLE_AS_FLOAT_P (op)
|
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (op, 'G', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
case 'H':
|
|
||||||
if (CONST_DOUBLE_AS_FLOAT_P (op)
|
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (op, 'H', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
if (CONST_SCALAR_INT_P (op))
|
if (CONST_SCALAR_INT_P (op))
|
||||||
break;
|
break;
|
||||||
|
|
@ -1853,47 +1842,6 @@ asm_operand_ok (rtx op, const char *constraint, const char **constraints)
|
||||||
result = 1;
|
result = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), 'I', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
case 'J':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), 'J', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
case 'K':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), 'K', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
case 'L':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), 'L', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
case 'M':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), 'M', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
case 'N':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), 'N', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
case 'O':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), 'O', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
case 'P':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), 'P', constraint))
|
|
||||||
result = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'X':
|
case 'X':
|
||||||
result = 1;
|
result = 1;
|
||||||
break;
|
break;
|
||||||
|
|
@ -2802,13 +2750,6 @@ constrain_operands (int strict)
|
||||||
win = 1;
|
win = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G':
|
|
||||||
case 'H':
|
|
||||||
if (CONST_DOUBLE_AS_FLOAT_P (op)
|
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (op, c, p))
|
|
||||||
win = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
if (CONST_SCALAR_INT_P (op))
|
if (CONST_SCALAR_INT_P (op))
|
||||||
break;
|
break;
|
||||||
|
|
@ -2822,19 +2763,6 @@ constrain_operands (int strict)
|
||||||
win = 1;
|
win = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I':
|
|
||||||
case 'J':
|
|
||||||
case 'K':
|
|
||||||
case 'L':
|
|
||||||
case 'M':
|
|
||||||
case 'N':
|
|
||||||
case 'O':
|
|
||||||
case 'P':
|
|
||||||
if (CONST_INT_P (op)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (op), c, p))
|
|
||||||
win = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'V':
|
case 'V':
|
||||||
if (MEM_P (op)
|
if (MEM_P (op)
|
||||||
&& ((strict > 0 && ! offsettable_memref_p (op))
|
&& ((strict > 0 && ! offsettable_memref_p (op))
|
||||||
|
|
|
||||||
20
gcc/reload.c
20
gcc/reload.c
|
|
@ -3434,13 +3434,6 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known,
|
||||||
win = 1;
|
win = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G':
|
|
||||||
case 'H':
|
|
||||||
if (CONST_DOUBLE_AS_FLOAT_P (operand)
|
|
||||||
&& CONST_DOUBLE_OK_FOR_CONSTRAINT_P (operand, c, p))
|
|
||||||
win = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
if (CONST_SCALAR_INT_P (operand))
|
if (CONST_SCALAR_INT_P (operand))
|
||||||
break;
|
break;
|
||||||
|
|
@ -3455,19 +3448,6 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known,
|
||||||
win = 1;
|
win = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I':
|
|
||||||
case 'J':
|
|
||||||
case 'K':
|
|
||||||
case 'L':
|
|
||||||
case 'M':
|
|
||||||
case 'N':
|
|
||||||
case 'O':
|
|
||||||
case 'P':
|
|
||||||
if (CONST_INT_P (operand)
|
|
||||||
&& CONST_OK_FOR_CONSTRAINT_P (INTVAL (operand), c, p))
|
|
||||||
win = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'X':
|
case 'X':
|
||||||
force_reload = 0;
|
force_reload = 0;
|
||||||
win = 1;
|
win = 1;
|
||||||
|
|
|
||||||
|
|
@ -933,7 +933,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
|
||||||
CONST_DOUBLE_OK_FOR_LETTER_P EXTRA_CONSTRAINT \
|
CONST_DOUBLE_OK_FOR_LETTER_P EXTRA_CONSTRAINT \
|
||||||
REG_CLASS_FROM_CONSTRAINT REG_CLASS_FOR_CONSTRAINT \
|
REG_CLASS_FROM_CONSTRAINT REG_CLASS_FOR_CONSTRAINT \
|
||||||
EXTRA_CONSTRAINT_STR EXTRA_MEMORY_CONSTRAINT \
|
EXTRA_CONSTRAINT_STR EXTRA_MEMORY_CONSTRAINT \
|
||||||
EXTRA_ADDRESS_CONSTRAINT
|
EXTRA_ADDRESS_CONSTRAINT CONST_DOUBLE_OK_FOR_CONSTRAINT_P
|
||||||
|
|
||||||
/* Hooks that are no longer used. */
|
/* Hooks that are no longer used. */
|
||||||
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
|
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue