summaryrefslogtreecommitdiff
path: root/gcc/ira-lives.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-06-11 16:58:35 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-06-11 16:58:35 +0000
commit79bc09fb803b6577c9b7bcb0f43654c4cd828465 (patch)
tree923092a0e7d4f3ea66962e54661707bc328d5327 /gcc/ira-lives.c
parentad5d2f053fec0b131e521cb4a293ebbc1236fa9b (diff)
downloadgcc-79bc09fb803b6577c9b7bcb0f43654c4cd828465.tar.gz
gcc/
* system.h (REG_CLASS_FROM_CONSTRAINT): Poison. (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise. (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise. * genpreds.c (print_type_tree): New function. (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT, REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR. Write out enum constraint_type and get_constraint_type. * lra-constraints.c (satisfies_memory_constraint_p): Take a constraint_num rather than a constraint string. (satisfies_address_constraint_p): Likewise. (reg_class_from_constraints): Avoid old constraint macros. (process_alt_operands, process_address_1): Likewise. (curr_insn_transform): Likewise. * ira-costs.c (record_reg_classes): Likewise. (record_operand_costs): Likewise. * ira-lives.c (single_reg_class): Likewise. (ira_implicitly_set_insn_hard_regs): Likewise. * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise. * postreload.c (reload_cse_simplify_operands): Likewise. * recog.c (asm_operand_ok, preprocess_constraints): Likewise. (constrain_operands, peep2_find_free_register): Likewise. * reload.c (push_secondary_reload, scratch_reload_class): Likewise. (find_reloads, alternative_allows_const_pool_ref): Likewise. * reload1.c (maybe_fix_stack_asms): Likewise. * stmt.c (parse_output_constraint, parse_input_constraint): Likewise. * targhooks.c (default_secondary_reload): Likewise. * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference to EXTRA_CONSTRAINT_STR. * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211471 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-lives.c')
-rw-r--r--gcc/ira-lives.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c
index bb03967225b..e173ae36712 100644
--- a/gcc/ira-lives.c
+++ b/gcc/ira-lives.c
@@ -759,6 +759,7 @@ single_reg_class (const char *constraints, rtx op, rtx equiv_const)
{
int c;
enum reg_class cl, next_cl;
+ enum constraint_num cn;
cl = NO_REGS;
alternative_mask enabled = recog_data.enabled_alternatives;
@@ -849,20 +850,19 @@ single_reg_class (const char *constraints, rtx op, rtx equiv_const)
case 'A': case 'B': case 'C': case 'D':
case 'Q': case 'R': case 'S': case 'T': case 'U':
case 'W': case 'Y': case 'Z':
-#ifdef EXTRA_CONSTRAINT_STR
/* ??? Is this the best way to handle memory constraints? */
- if (EXTRA_MEMORY_CONSTRAINT (c, constraints)
- || EXTRA_ADDRESS_CONSTRAINT (c, constraints))
+ cn = lookup_constraint (constraints);
+ if (insn_extra_memory_constraint (cn)
+ || insn_extra_address_constraint (cn))
return NO_REGS;
- if (EXTRA_CONSTRAINT_STR (op, c, constraints)
+ if (constraint_satisfied_p (op, cn)
|| (equiv_const != NULL_RTX
&& CONSTANT_P (equiv_const)
- && EXTRA_CONSTRAINT_STR (equiv_const, c, constraints)))
+ && constraint_satisfied_p (equiv_const, cn)))
return NO_REGS;
-#endif
next_cl = (c == 'r'
? GENERAL_REGS
- : REG_CLASS_FROM_CONSTRAINT (c, constraints));
+ : reg_class_for_constraint (cn));
if (next_cl == NO_REGS)
break;
if (cl == NO_REGS
@@ -950,7 +950,7 @@ ira_implicitly_set_insn_hard_regs (HARD_REG_SET *set)
case 'W': case 'Y': case 'Z':
cl = (c == 'r'
? GENERAL_REGS
- : REG_CLASS_FROM_CONSTRAINT (c, p));
+ : reg_class_for_constraint (lookup_constraint (p)));
if (cl != NO_REGS)
{
/* There is no register pressure problem if all of the