aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-04-10 08:19:21 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-04-10 08:19:21 +0000
commit26eb69c619a491be1a40413b98d010b2d3ef984a (patch)
tree6b92c821c2ae799a2ab7f42bf9b9d1f1861fa75f /gcc/cgraphunit.c
parentbcc2b4cdc2b3692baa1e2c64c5c520a0dc66bc4b (diff)
downloadgcc-26eb69c619a491be1a40413b98d010b2d3ef984a.zip
gcc-26eb69c619a491be1a40413b98d010b2d3ef984a.tar.gz
gcc-26eb69c619a491be1a40413b98d010b2d3ef984a.tar.bz2
tree-pass.h (tree_lowering_passes): Remove.
2012-04-10 Richard Guenther <rguenther@suse.de> * tree-pass.h (tree_lowering_passes): Remove. * tree-optimize.c (tree_lowering_passes): Remove. * cgraph.c (cgraph_add_new_function): Inline relevant parts of tree_lowering_passes, avoid redundant call of early local passes. * cgraphunit.c (cgraph_lower_function): Fold into ... (cgraph_analyze_function): ... its single caller. Inline relevant parts of tree_lowering_passes. From-SVN: r186268
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 9e5820f..70ac1f3 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -313,20 +313,6 @@ cgraph_reset_node (struct cgraph_node *node)
cgraph_node_remove_callees (node);
}
-static void
-cgraph_lower_function (struct cgraph_node *node)
-{
- if (node->lowered)
- return;
-
- if (node->nested)
- lower_nested_functions (node->decl);
- gcc_assert (!node->nested);
-
- tree_lowering_passes (node->decl);
- node->lowered = true;
-}
-
/* DECL has been parsed. Take it, queue it, compile it at the whim of the
logic in effect. If NESTED is true, then our caller cannot stand to have
the garbage collector run at the moment. We would need to either create
@@ -915,7 +901,23 @@ cgraph_analyze_function (struct cgraph_node *node)
gimplify_function_tree (decl);
dump_function (TDI_generic, decl);
- cgraph_lower_function (node);
+ /* Lower the function. */
+ if (!node->lowered)
+ {
+ if (node->nested)
+ lower_nested_functions (node->decl);
+ gcc_assert (!node->nested);
+
+ gimple_register_cfg_hooks ();
+ bitmap_obstack_initialize (NULL);
+ execute_pass_list (all_lowering_passes);
+ free_dominance_info (CDI_POST_DOMINATORS);
+ free_dominance_info (CDI_DOMINATORS);
+ compact_blocks ();
+ bitmap_obstack_release (NULL);
+ node->lowered = true;
+ }
+
pop_cfun ();
}
node->analyzed = true;