aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.def
diff options
context:
space:
mode:
authorMaxim Kuznetsov <maxim.kuznetsov@intel.com>2012-11-19 10:19:20 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2012-11-19 10:19:20 +0000
commit477c104eafcc18e49eb5779d06dad8a8f02c84f6 (patch)
tree752f646619b03ca24f6fb4099068b498294501fe /gcc/rtl.def
parentd826d5c2092961ffe84e1eb9bf89a8fc894ca9b4 (diff)
downloadgcc-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.def7
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 */
/*