Commit 7bca81dc by Steven Bosscher

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
parent 4542a38a
2013-04-05 Steven Bosscher <steven@gcc.gnu.org>
* 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.
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/constraints.md (q): New constraint.
......
......@@ -1998,14 +1998,12 @@ fix_crossing_unconditional_branches (void)
if (JUMP_P (last_insn)
&& (succ->flags & EDGE_CROSSING))
{
rtx label2;
gcc_assert (!any_condjump_p (last_insn));
/* Make sure the jump is not already an indirect or table jump. */
if (!computed_jump_p (last_insn)
&& !tablejump_p (last_insn, &label2, NULL))
&& !tablejump_p (last_insn, NULL, NULL))
{
/* We have found a "crossing" unconditional branch. Now
we must convert it to an indirect jump. First create
......
......@@ -1260,7 +1260,10 @@ cgraph_node_remove_callers (struct cgraph_node *node)
node->callers = NULL;
}
/* Release memory used to represent body of function NODE. */
/* Release memory used to represent body of function NODE.
Use this only for functions that are released before being translated to
target code (i.e. RTL). Functions that are compiled to RTL and beyond
are free'd in final.c via free_after_compilation(). */
void
cgraph_release_function_body (struct cgraph_node *node)
......@@ -1285,6 +1288,7 @@ cgraph_release_function_body (struct cgraph_node *node)
gcc_assert (dom_computed[0] == DOM_NONE);
gcc_assert (dom_computed[1] == DOM_NONE);
clear_edges ();
cfun->cfg = NULL;
}
if (cfun->value_histograms)
free_histograms ();
......
......@@ -919,8 +919,6 @@ find_and_remove_re (void)
if (dump_file && num_re_opportunities > 0)
fprintf (dump_file, "Elimination opportunities = %d realized = %d\n",
num_re_opportunities, num_realized);
df_finish_pass (false);
}
/* Find and remove redundant extensions. */
......@@ -958,7 +956,8 @@ struct rtl_opt_pass pass_ree =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_ggc_collect |
TODO_verify_rtl_sharing, /* todo_flags_finish */
TODO_df_finish
| TODO_ggc_collect
| TODO_verify_rtl_sharing, /* todo_flags_finish */
}
};
......@@ -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 */
/*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment