diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2014-06-11 16:59:17 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-06-11 16:59:17 +0000 |
commit | 8677664e02258772068ad1fe4672943c998bace8 (patch) | |
tree | ebbbc6a5c16fb2f71c030dc719d566bd7b2d0538 /gcc/ira.c | |
parent | 7fd308cffa3775f62d69b63bc9b1cefced10d817 (diff) | |
download | gcc-8677664e02258772068ad1fe4672943c998bace8.tar.gz |
common.md: New file.
gcc/
* common.md: New file.
* doc/md.texi: Update description of generic, machine-independent
constraints.
* config/s390/constraints.md (e): Delete.
* Makefile.in (md_file): Include common.md.
* config/m32c/t-m32c (md_file): Likewise.
* genpreds.c (general_mem): New array.
(generic_constraint_letters): Remove constraints now defined by
common.md.
(add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
Allow the first character to be '<' or '>' as well.
* genoutput.c (general_mem): New array.
(indep_constraints): Remove constraints now defined by common.md.
(note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
Remove special handling of 'm'.
* ira-costs.c (record_reg_classes): Remove special handling of
constraints now defined by common.md.
* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
* ira-lives.c (single_reg_class): Likewise.
(ira_implicitly_set_insn_hard_regs): Likewise.
* lra-constraints.c (reg_class_from_constraints): Likewise.
(process_alt_operands, process_address, curr_insn_transform): Likewise.
* postreload.c (reload_cse_simplify_operands): Likewise.
* reload.c (push_secondary_reload, scratch_reload_class)
(find_reloads, alternative_allows_const_pool_ref): Likewise.
* reload1.c (maybe_fix_stack_asms): Likewise.
* targhooks.c (default_secondary_reload): Likewise.
* stmt.c (parse_output_constraint): Likewise.
* recog.c (preprocess_constraints): Likewise.
(constrain_operands, peep2_find_free_register): Likewise.
(asm_operand_ok): Likewise, but add a comment saying why 'o'
must be handled specially.
From-SVN: r211475
Diffstat (limited to 'gcc/ira.c')
-rw-r--r-- | gcc/ira.c | 68 |
1 files changed, 1 insertions, 67 deletions
diff --git a/gcc/ira.c b/gcc/ira.c index f724fd4b4d2..034c4cc8c2e 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -1835,9 +1835,6 @@ ira_setup_alts (rtx insn, HARD_REG_SET &alts) len = 0; break; - case '?': case '!': case '*': case '=': case '+': - break; - case '%': /* We only support one commutative marker, the first one. We already set commutative @@ -1846,63 +1843,12 @@ ira_setup_alts (rtx insn, HARD_REG_SET &alts) commutative = nop; break; - case '&': - break; - case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto op_success; break; - case 'p': case 'g': - case 'X': - case TARGET_MEM_CONSTRAINT: - goto op_success; - break; - - case '<': - if (MEM_P (op) - && (GET_CODE (XEXP (op, 0)) == PRE_DEC - || GET_CODE (XEXP (op, 0)) == POST_DEC)) - goto op_success; - break; - - case '>': - if (MEM_P (op) - && (GET_CODE (XEXP (op, 0)) == PRE_INC - || GET_CODE (XEXP (op, 0)) == POST_INC)) - goto op_success; - break; - - case 'E': - case 'F': - if (CONST_DOUBLE_AS_FLOAT_P (op) - || (GET_CODE (op) == CONST_VECTOR - && GET_MODE_CLASS (GET_MODE (op)) == MODE_VECTOR_FLOAT)) - goto op_success; - break; - - case 's': - if (CONST_SCALAR_INT_P (op)) - break; - case 'i': - if (CONSTANT_P (op)) - goto op_success; - break; - - case 'n': - if (CONST_SCALAR_INT_P (op)) - goto op_success; - break; - - case 'V': - if (MEM_P (op) && ! offsettable_memref_p (op)) - goto op_success; - break; - - case 'o': - case 'r': goto op_success; break; @@ -1992,21 +1938,9 @@ ira_get_dup_out_num (int op_num, HARD_REG_SET &alts) else if (! ignore_p) switch (c) { - case 'X': - case 'p': case 'g': goto fail; - case 'r': - if (!targetm.class_likely_spilled_p (GENERAL_REGS)) - goto fail; - break; - case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': - case 'h': case 'j': case 'k': case 'l': - case 'q': case 't': case 'u': - case 'v': case 'w': case 'x': case 'y': case 'z': - case 'A': case 'B': case 'C': case 'D': - case 'Q': case 'R': case 'S': case 'T': case 'U': - case 'W': case 'Y': case 'Z': + default: { enum constraint_num cn = lookup_constraint (str); enum reg_class cl = reg_class_for_constraint (cn); |