aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.def
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2013-04-05 19:23:17 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2013-04-05 19:23:17 +0000
commit7bca81dc6a2606caeb675fb74afdad5f2a86d44a (patch)
treecc55e3c8d03e775e0ae127a1d61cb22dd0973f7f /gcc/rtl.def
parent4542a38a21fea54d28d2d2b34ef8e12ebb7ca415 (diff)
downloadgcc-7bca81dc6a2606caeb675fb74afdad5f2a86d44a.zip
gcc-7bca81dc6a2606caeb675fb74afdad5f2a86d44a.tar.gz
gcc-7bca81dc6a2606caeb675fb74afdad5f2a86d44a.tar.bz2
bb-reorder.c (fix_crossing_unconditional_branches): Remove a set-but-unused variable.
* bb-reorder.c (fix_crossing_unconditional_branches): Remove a set-but-unused variable. * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make basic blocks of released function bodies garbage-collectable. * ree.c (find_and_remove_re): Do not call df_finish_pass here. (struct rtl_opt_pass): Add TODO_df_finish. * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation. From-SVN: r197533
Diffstat (limited to 'gcc/rtl.def')
-rw-r--r--gcc/rtl.def33
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/rtl.def b/gcc/rtl.def
index 47a3762..5da3dd3 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -1290,8 +1290,41 @@ 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)
+/* Definition of a pattern substitution meta operation on a DEFINE_EXPAND
+ or a DEFINE_INSN. Automatically generates new instances of DEFINE_INSNs
+ that match the substitution pattern.
+
+ Operand:
+ 0: The name of the substitition template.
+ 1: Input template to match to see if a substitution is applicable.
+ 2: A C expression giving an additional condition for the generated
+ new define_expand or define_insn.
+ 3: Output tempalate to generate via substitution.
+
+ Within a DEFINE_SUBST template, the meaning of some RTL expressions is
+ different from their usual interpretation: a MATCH_OPERAND matches any
+ expression tree with matching machine mode or with VOIDmode. Likewise,
+ MATCH_OP_DUP and MATCH_DUP match more liberally in a DEFINE_SUBST than
+ in other RTL expressions. MATCH_OPERATOR matches all common operators
+ but also UNSPEC, UNSPEC_VOLATILE, and MATCH_OPERATORS from the input
+ DEFINE_EXPAND or DEFINE_INSN. */
DEF_RTL_EXPR(DEFINE_SUBST, "define_subst", "sEsE", RTX_EXTRA)
+
+/* Substitution attribute to apply a DEFINE_SUBST to a pattern.
+
+ Operand:
+ 0: The name of the subst-attribute.
+ 1: The name of the DEFINE_SUBST to be applied for this attribute.
+ 2: String to substitute for the subst-attribute name in the pattern
+ name, for the case that the DEFINE_SUBST is not applied (i.e. the
+ unmodified version of the pattern).
+ 3: String to substitute for the subst-attribute name in the pattern
+ name, for the case that the DEFINE_SUBST is applied to the patten.
+
+ The use of DEFINE_SUBST and DEFINE_SUBST_ATTR is explained in the
+ GCC internals manual, under "RTL Templates Transformations". */
DEF_RTL_EXPR(DEFINE_SUBST_ATTR, "define_subst_attr", "ssss", RTX_EXTRA)
+
#endif /* GENERATOR_FILE */
/*