aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira-costs.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2014-06-11 16:58:51 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2014-06-11 16:58:51 +0000
commitd9c35eee65f97e368a89148572ca8a43d0eb071c (patch)
tree3d0591f6b1eb26e1dda4162bf800619545af750e /gcc/ira-costs.c
parent3c4c42e826b61d7b99e6be965dd1187784d2228c (diff)
downloadgcc-d9c35eee65f97e368a89148572ca8a43d0eb071c.zip
gcc-d9c35eee65f97e368a89148572ca8a43d0eb071c.tar.gz
gcc-d9c35eee65f97e368a89148572ca8a43d0eb071c.tar.bz2
genpreds.c (const_int_start, [...]): New variables.
gcc/ * genpreds.c (const_int_start, const_int_end): New variables. (choose_enum_order): Output CONST_INT constraints before memory constraints. (write_tm_preds_h): Always define insn_const_int_ok_for_constraint. Add CT_CONST_INT. * ira-costs.c (record_reg_classes): Handle CT_CONST_INT. * ira.c (ira_setup_alts): Likewise. * lra-constraints.c (process_alt_operands): Likewise. * recog.c (asm_operand_ok, preprocess_constraints): Likewise. * reload.c (find_reloads): Likewise. From-SVN: r211473
Diffstat (limited to 'gcc/ira-costs.c')
-rw-r--r--gcc/ira-costs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index a93985b..795238f 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -763,6 +763,12 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops,
classes[i] = ira_reg_class_subunion[classes[i]][cl];
break;
+ case CT_CONST_INT:
+ if (CONST_INT_P (op)
+ && insn_const_int_ok_for_constraint (INTVAL (op), cn))
+ win = 1;
+ break;
+
case CT_MEMORY:
/* Every MEM can be reloaded to fit. */
insn_allows_mem[i] = allows_mem[i] = 1;