diff options
author | Richard Guenther <rguenther@suse.de> | 2012-04-10 08:19:21 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-04-10 08:19:21 +0000 |
commit | 26eb69c619a491be1a40413b98d010b2d3ef984a (patch) | |
tree | 6b92c821c2ae799a2ab7f42bf9b9d1f1861fa75f /gcc/cgraphunit.c | |
parent | bcc2b4cdc2b3692baa1e2c64c5c520a0dc66bc4b (diff) | |
download | gcc-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.c | 32 |
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; |