diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-11 16:58:35 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-11 16:58:35 +0000 |
commit | 79bc09fb803b6577c9b7bcb0f43654c4cd828465 (patch) | |
tree | 923092a0e7d4f3ea66962e54661707bc328d5327 /gcc/ira-lives.c | |
parent | ad5d2f053fec0b131e521cb4a293ebbc1236fa9b (diff) | |
download | gcc-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.c | 16 |
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 |