]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
bb-reorder.c (fix_crossing_unconditional_branches): Remove a set-but-unused variable.
authorSteven Bosscher <steven@gcc.gnu.org>
Fri, 5 Apr 2013 19:23:17 +0000 (19:23 +0000)
committerSteven Bosscher <steven@gcc.gnu.org>
Fri, 5 Apr 2013 19:23:17 +0000 (19:23 +0000)
* 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

gcc/ChangeLog
gcc/bb-reorder.c
gcc/cgraph.c
gcc/ree.c
gcc/rtl.def

index 1412a6ac87ab0a0d49ad1a9fec5da6e8dedf7fb9..7e955d4c9e60f6ab2b3511817758565ec4d1cec7 100644 (file)
@@ -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.
index 48d43a63dde7e8c6b7e25ae208d857d0f81ee2e3..7605e17e7ef3224d57e68c0ca347b4f26597281a 100644 (file)
@@ -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
index 930ccd862fe3a0828b14c67cebf533a28d6032b8..693d4db90141c9c47d1e392ccc715964421494e7 100644 (file)
@@ -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 ();
index ff96df8a016beb285207d6bc2d3543725b4ac0c7..c60921239a7ca42cb1faccfc7dbe6627bb032fa6 100644 (file)
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -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 */
  }
 };
index 47a37623c6d9dbe6b3cac5892695b46ab6711224..5da3dd3ec007c0df0d83a85d00fa7e1373572c20 100644 (file)
@@ -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 */
 
 /*