diff options
author | Maxim Kuznetsov <maxim.kuznetsov@intel.com> | 2012-11-19 10:19:20 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2012-11-19 10:19:20 +0000 |
commit | 477c104eafcc18e49eb5779d06dad8a8f02c84f6 (patch) | |
tree | 752f646619b03ca24f6fb4099068b498294501fe /gcc/rtl.def | |
parent | d826d5c2092961ffe84e1eb9bf89a8fc894ca9b4 (diff) | |
download | gcc-477c104eafcc18e49eb5779d06dad8a8f02c84f6.zip gcc-477c104eafcc18e49eb5779d06dad8a8f02c84f6.tar.gz gcc-477c104eafcc18e49eb5779d06dad8a8f02c84f6.tar.bz2 |
md.texi: Document define_subst.
* doc/md.texi: Document define_subst.
* gensupport.c (MAX_OPERANDS): New define.
(operand_data): New.
(match_operand_entries_in_pattern): New.
(used_operands_numbers): New.
(subst_true): New.
(subst_false): New.
(define_subst_queue): New.
(define_subst_tail): New.
(define_subst_attr_queue): New.
(define_subst_attr_tail): New.
(has_subst_attribute): New.
(subst_pattern_match): New.
(get_alternatives_number): New.
(alter_output_for_subst_insn): New.
(alter_attrs_for_subst_insn): New.
(process_substs_on_one_elem): New.
(subst_dup): New.
(process_define_subst): New.
(duplicate_alternatives): New.
(duplicate_each_alternative): New.
(constraints_handler_t): New typedef.
(alter_constraints): New.
(adjust_operands_numbers): New.
(replace_duplicating_operands_in_pattern): New.
(remove_from_queue): New.
(process_rtx): Handle define_subst and define_subst_attr.
(change_subst_attribute): New.
(alter_predicate_for_insn): Fix formatting.
(alter_attrs_for_insn): Likewise.
(alter_output_for_insn): Likewise.
(mark_operands_from_match_dup): New.
(mark_operands_used_in_match_dup): New.
(find_first_unused_number_of_operand): New.
(renumerate_operands_in_pattern): New.
(generate_match_dup): New.
(check_define_attr_duplicates): New.
(init_rtx_reader_args_cb): Add checking for duplicated attrs and
processing of define_subst.
(read_md_rtx): Handle define_subst.
* read-rtl.c (struct subst_attr_to_iter_mapping): New.
(substs): New global.
(apply_subst_iterator): New.
(bind_subst_iter_and_attr): New.
(find_subst_iter_by_attr): New.
(map_attr_string): Handle subst-iterators.
(add_condition_to_rtx): Handle define_subst.
(apply_iterators): Likewise.
(initialize_iterators): Likewise.
(add_define_attr_for_define_subst): New.
(add_define_subst_attr): New.
(read_subst_mapping): New.
(read_rtx): Handle define_subst_attr.
(read_rtx_code): Add subst-attributes recognition during reading of
strings.
* rtl.def (DEFINE_EXPAND): Add vector of attributes.
(DEFINE_SUBST): New.
(DEFINE_SUBST_ATTR): New.
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r193618
Diffstat (limited to 'gcc/rtl.def')
-rw-r--r-- | gcc/rtl.def | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/rtl.def b/gcc/rtl.def index 32098af..6948bfe 100644 --- a/gcc/rtl.def +++ b/gcc/rtl.def @@ -906,8 +906,9 @@ DEF_RTL_EXPR(DEFINE_PEEPHOLE2, "define_peephole2", "EsES", RTX_EXTRA) This might, for example, create some RTX's and store them in elements of `recog_data.operand' for use by the vector of insn-patterns. - (`operands' is an alias here for `recog_data.operand'). */ -DEF_RTL_EXPR(DEFINE_EXPAND, "define_expand", "sEss", RTX_EXTRA) + (`operands' is an alias here for `recog_data.operand'). + 5th: optionally, a vector of attributes for this expand. */ +DEF_RTL_EXPR(DEFINE_EXPAND, "define_expand", "sEssV", RTX_EXTRA) /* Define a requirement for delay slots. 1st operand: Condition involving insn attributes that, if true, @@ -1280,6 +1281,8 @@ DEF_RTL_EXPR (ATTR_FLAG, "attr_flag", "s", RTX_EXTRA) true, the second operand will be used as the value of the conditional. */ DEF_RTL_EXPR(COND, "cond", "Ee", RTX_EXTRA) +DEF_RTL_EXPR(DEFINE_SUBST, "define_subst", "sEsE", RTX_EXTRA) +DEF_RTL_EXPR(DEFINE_SUBST_ATTR, "define_subst_attr", "ssss", RTX_EXTRA) #endif /* GENERATOR_FILE */ /* |