diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2014-06-11 16:59:01 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-06-11 16:59:01 +0000 |
commit | 7fd308cffa3775f62d69b63bc9b1cefced10d817 (patch) | |
tree | d44d90996a8e4988ffeaca48c18b078c652a966b /gcc | |
parent | d9c35eee65f97e368a89148572ca8a43d0eb071c (diff) | |
download | gcc-7fd308cffa3775f62d69b63bc9b1cefced10d817.zip gcc-7fd308cffa3775f62d69b63bc9b1cefced10d817.tar.gz gcc-7fd308cffa3775f62d69b63bc9b1cefced10d817.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/genpreds.c | 7 | ||||
-rw-r--r-- | gcc/ira-costs.c | 20 | ||||
-rw-r--r-- | gcc/ira-lives.c | 31 | ||||
-rw-r--r-- | gcc/ira.c | 20 | ||||
-rw-r--r-- | gcc/lra-constraints.c | 20 | ||||
-rw-r--r-- | gcc/recog.c | 72 | ||||
-rw-r--r-- | gcc/reload.c | 20 | ||||
-rw-r--r-- | gcc/system.h | 2 |
9 files changed, 18 insertions, 188 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3452b6d..3a6e9d7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,19 @@ 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> + * genpreds.c (const_int_start, const_int_end): New variables. (choose_enum_order): Output CONST_INT constraints before memory constraints. diff --git a/gcc/genpreds.c b/gcc/genpreds.c index c50b9cd..cc91139 100644 --- a/gcc/genpreds.c +++ b/gcc/genpreds.c @@ -684,7 +684,6 @@ static bool have_memory_constraints; static bool have_address_constraints; static bool have_extra_constraints; static bool have_const_int_constraints; -static bool have_const_dbl_constraints; static unsigned int num_constraints; 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)); have_register_constraints |= c->is_register; have_const_int_constraints |= c->is_const_int; - have_const_dbl_constraints |= c->is_const_dbl; have_extra_constraints |= c->is_extra; have_memory_constraints |= c->is_memory; have_address_constraints |= c->is_address; @@ -1375,11 +1373,6 @@ write_tm_preds_h (void) "{\n" " return false;\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" "{\n" diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index 795238f..5d31756 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -703,13 +703,6 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops, win = 1; 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': if (CONST_SCALAR_INT_P (op)) break; @@ -725,19 +718,6 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops, win = 1; 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': win = 1; break; diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c index e173ae3..af8ec2b 100644 --- a/gcc/ira-lives.c +++ b/gcc/ira-lives.c @@ -801,23 +801,6 @@ single_reg_class (const char *constraints, rtx op, rtx equiv_const) return NO_REGS; 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 'F': 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; break; - case 'G': - case 'H': - if ((CONST_DOUBLE_AS_FLOAT_P (op) - && 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 'I': case 'J': case 'K': case 'L': case 'M': case 'N': + case 'O': case 'P': + case 'G': case 'H': case 'r': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'h': case 'j': case 'k': case 'l': @@ -1883,13 +1883,6 @@ ira_setup_alts (rtx insn, HARD_REG_SET &alts) goto op_success; 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': if (CONST_SCALAR_INT_P (op)) break; @@ -1903,19 +1896,6 @@ ira_setup_alts (rtx insn, HARD_REG_SET &alts) goto op_success; 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': if (MEM_P (op) && ! offsettable_memref_p (op)) goto op_success; diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index 453c578..284116d 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -1980,13 +1980,6 @@ process_alt_operands (int only_alternative) win = true; 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': if (CONST_SCALAR_INT_P (op)) break; @@ -2001,19 +1994,6 @@ process_alt_operands (int only_alternative) win = true; 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': /* This constraint should be excluded by the fast track. */ diff --git a/gcc/recog.c b/gcc/recog.c index 2b62167..4d72919 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -1827,17 +1827,6 @@ asm_operand_ok (rtx op, const char *constraint, const char **constraints) result = 1; 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': if (CONST_SCALAR_INT_P (op)) break; @@ -1853,47 +1842,6 @@ asm_operand_ok (rtx op, const char *constraint, const char **constraints) result = 1; 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': result = 1; break; @@ -2802,13 +2750,6 @@ constrain_operands (int strict) win = 1; 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': if (CONST_SCALAR_INT_P (op)) break; @@ -2822,19 +2763,6 @@ constrain_operands (int strict) win = 1; 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': if (MEM_P (op) && ((strict > 0 && ! offsettable_memref_p (op)) diff --git a/gcc/reload.c b/gcc/reload.c index cf2de93..d3f5a8a 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3434,13 +3434,6 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known, win = 1; 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': if (CONST_SCALAR_INT_P (operand)) break; @@ -3455,19 +3448,6 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known, win = 1; 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': force_reload = 0; win = 1; diff --git a/gcc/system.h b/gcc/system.h index b0be80c..29da797 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -933,7 +933,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; CONST_DOUBLE_OK_FOR_LETTER_P EXTRA_CONSTRAINT \ REG_CLASS_FROM_CONSTRAINT REG_CLASS_FOR_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. */ #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ |