diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-22 12:02:11 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-22 12:02:11 +0000 |
commit | e1a797ade2cd2dffe3e9ff73826422700f010c84 (patch) | |
tree | 69a28087e5d6c8f66821aa2540f8d19983b792eb /gcc/lra.c | |
parent | 835b8178b6af49b010c32136c5aa49227d562691 (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.c | 28 |
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; } |