diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-11 16:59:17 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-11 16:59:17 +0000 |
commit | 694494638c9f211c1e27c6c08b0d8dc7656e24e8 (patch) | |
tree | ebbbc6a5c16fb2f71c030dc719d566bd7b2d0538 /gcc/reload.c | |
parent | e3c57fd265541f5124639cc88955fb68edcbcdc8 (diff) | |
download | gcc-694494638c9f211c1e27c6c08b0d8dc7656e24e8.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211475 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 52 |
1 files changed, 4 insertions, 48 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index d3f5a8aea1b..e55968e4882 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -328,7 +328,6 @@ push_secondary_reload (int in_p, rtx x, int opnum, int optional, enum reload_type secondary_type; int s_reload, t_reload = -1; const char *scratch_constraint; - char letter; secondary_reload_info sri; if (type == RELOAD_FOR_INPUT_ADDRESS @@ -399,10 +398,8 @@ push_secondary_reload (int in_p, rtx x, int opnum, int optional, scratch_constraint++; if (*scratch_constraint == '&') scratch_constraint++; - letter = *scratch_constraint; - scratch_class = (letter == 'r' ? GENERAL_REGS - : (reg_class_for_constraint - (lookup_constraint (scratch_constraint)))); + scratch_class = (reg_class_for_constraint + (lookup_constraint (scratch_constraint))); rclass = scratch_class; mode = insn_data[(int) icode].operand[2].mode; @@ -548,7 +545,6 @@ enum reg_class scratch_reload_class (enum insn_code icode) { const char *scratch_constraint; - char scratch_letter; enum reg_class rclass; gcc_assert (insn_data[(int) icode].n_operands == 3); @@ -557,9 +553,6 @@ scratch_reload_class (enum insn_code icode) scratch_constraint++; if (*scratch_constraint == '&') scratch_constraint++; - scratch_letter = *scratch_constraint; - if (scratch_letter == 'r') - return GENERAL_REGS; rclass = reg_class_for_constraint (lookup_constraint (scratch_constraint)); gcc_assert (rclass != NO_REGS); return rclass; @@ -2850,9 +2843,8 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known, if (*constraints[i] == 0) /* Ignore things like match_operator operands. */ ; - else if (constraints[i][0] == 'p' - || (insn_extra_address_constraint - (lookup_constraint (constraints[i])))) + else if (insn_extra_address_constraint + (lookup_constraint (constraints[i]))) { address_operand_reloaded[i] = find_reloads_address (recog_data.operand_mode[i], (rtx*) 0, @@ -3209,14 +3201,6 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known, c = '\0'; break; - case '=': case '+': case '*': - break; - - case '%': - /* We only support one commutative marker, the first - one. We already set commutative above. */ - break; - case '?': reject += 6; break; @@ -3425,29 +3409,6 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known, earlyclobber = 1, this_earlyclobber = 1; break; - case 'E': - case 'F': - if (CONST_DOUBLE_AS_FLOAT_P (operand) - || (GET_CODE (operand) == CONST_VECTOR - && (GET_MODE_CLASS (GET_MODE (operand)) - == MODE_VECTOR_FLOAT))) - win = 1; - break; - - case 's': - if (CONST_SCALAR_INT_P (operand)) - break; - case 'i': - if (CONSTANT_P (operand) - && (! flag_pic || LEGITIMATE_PIC_OPERAND_P (operand))) - win = 1; - break; - - case 'n': - if (CONST_SCALAR_INT_P (operand)) - win = 1; - break; - case 'X': force_reload = 0; win = 1; @@ -3468,9 +3429,6 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known, || (REGNO (operand) >= FIRST_PSEUDO_REGISTER && reg_renumber[REGNO (operand)] < 0))) win = 1; - /* Drop through into 'r' case. */ - - case 'r': cl = GENERAL_REGS; goto reg; @@ -4677,8 +4635,6 @@ alternative_allows_const_pool_ref (rtx mem ATTRIBUTE_UNUSED, for (; (c = *constraint) && c != ',' && c != '#'; constraint += CONSTRAINT_LEN (c, constraint)) { - if (c == TARGET_MEM_CONSTRAINT || c == 'o') - return true; enum constraint_num cn = lookup_constraint (constraint); if (insn_extra_memory_constraint (cn) && (mem == NULL || constraint_satisfied_p (mem, cn))) |