aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-10-22 12:02:11 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-10-22 12:02:11 +0000
commite1a797ade2cd2dffe3e9ff73826422700f010c84 (patch)
tree69a28087e5d6c8f66821aa2540f8d19983b792eb /gcc/lra.c
parent835b8178b6af49b010c32136c5aa49227d562691 (diff)
gcc/
* doc/md.texi: Document "preferred_for_size" and "preferred_for_speed" attributes. * genattr.c (main): Handle "preferred_for_size" and "preferred_for_speed" in the same way as "enabled". * recog.h (bool_attr): New enum. (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks. (get_preferred_alternatives, check_bool_attrs): Declare. * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached) (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs): New functions. (get_enabled_alternatives): Use get_bool_attr_mask. * ira-costs.c (record_reg_classes): Use get_preferred_alternatives instead of recog_data.enabled_alternatives. * ira.c (ira_setup_alts): Likewise. * postreload.c (reload_cse_simplify_operands): Likewise. * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise. * ira-lives.c (preferred_alternatives): New variable. (process_bb_node_lives): Set it. (check_and_make_def_conflict, make_early_clobber_and_input_conflicts) (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead of recog_data.enabled_alternatives. * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives to preferred_alternatives. * lra-constraints.c (process_alt_operands): Update accordingly. * lra.c (lra_set_insn_recog_data): Likewise. (lra_update_insn_recog_data): Assert check_bool_attrs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216554 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lra.c')
-rw-r--r--gcc/lra.c28
1 files changed, 4 insertions, 24 deletions
diff --git a/gcc/lra.c b/gcc/lra.c
index 6326131d8c3..22226361e64 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -921,7 +921,7 @@ lra_set_insn_recog_data (rtx_insn *insn)
data->insn_static_data = &debug_insn_static_data;
data->dup_loc = NULL;
data->arg_hard_regs = NULL;
- data->enabled_alternatives = ALL_ALTERNATIVES;
+ data->preferred_alternatives = ALL_ALTERNATIVES;
data->operand_loc = XNEWVEC (rtx *, 1);
data->operand_loc[0] = &INSN_VAR_LOCATION_LOC (insn);
return data;
@@ -981,7 +981,7 @@ lra_set_insn_recog_data (rtx_insn *insn)
= (insn_static_data->operand[i].constraint[0] == '=' ? OP_OUT
: insn_static_data->operand[i].constraint[0] == '+' ? OP_INOUT
: OP_IN);
- data->enabled_alternatives = ALL_ALTERNATIVES;
+ data->preferred_alternatives = ALL_ALTERNATIVES;
if (nop > 0)
{
operand_alternative *op_alt = XCNEWVEC (operand_alternative,
@@ -1015,7 +1015,7 @@ lra_set_insn_recog_data (rtx_insn *insn)
memcpy (locs, recog_data.dup_loc, n * sizeof (rtx *));
}
data->dup_loc = locs;
- data->enabled_alternatives = get_enabled_alternatives (insn);
+ data->preferred_alternatives = get_preferred_alternatives (insn);
const operand_alternative *op_alt = preprocess_insn_constraints (icode);
if (!insn_static_data->operand_alternative)
setup_operand_alternative (data, op_alt);
@@ -1206,27 +1206,7 @@ lra_update_insn_recog_data (rtx_insn *insn)
n = insn_static_data->n_dups;
if (n != 0)
memcpy (data->dup_loc, recog_data.dup_loc, n * sizeof (rtx *));
-#if HAVE_ATTR_enabled
-#ifdef ENABLE_CHECKING
- {
- int i;
- alternative_mask enabled;
-
- n = insn_static_data->n_alternatives;
- enabled = data->enabled_alternatives;
- lra_assert (n >= 0);
- /* Cache the insn to prevent extract_insn call from
- get_attr_enabled. */
- recog_data.insn = insn;
- for (i = 0; i < n; i++)
- {
- which_alternative = i;
- lra_assert (TEST_BIT (enabled, i)
- == (bool) get_attr_enabled (insn));
- }
- }
-#endif
-#endif
+ lra_assert (check_bool_attrs (insn));
}
return data;
}