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
This commit is contained in:
parent
4542a38a21
commit
7bca81dc6a
5 changed files with 55 additions and 8 deletions
|
@ -1,3 +1,16 @@
|
|||
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 */
|
||||
}
|
||||
};
|
||||
|
|
33
gcc/rtl.def
33
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 */
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue