diff options
author | Jan Hubicka <jh@suse.cz> | 2012-04-25 18:31:42 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2012-04-25 16:31:42 +0000 |
commit | 9c8305f8fcfdab61ed276d1c30e7832e87d9ac55 (patch) | |
tree | 59428eb8af21f903b36ff6bf0614f87d9cb27f0d /gcc/ipa-inline-transform.c | |
parent | 95e5b9a43acdccb2e47196b3be05b5df51619d77 (diff) | |
download | gcc-9c8305f8fcfdab61ed276d1c30e7832e87d9ac55.zip gcc-9c8305f8fcfdab61ed276d1c30e7832e87d9ac55.tar.gz gcc-9c8305f8fcfdab61ed276d1c30e7832e87d9ac55.tar.bz2 |
cgraphunit.c: Update toplevel comment.
* cgraphunit.c: Update toplevel comment.
(tree_rest_of_compilation): Merge into cgraph_expand_function.
(cgraph_analyze_function): Make static.
(cgraph_decide_is_function_needed): Make static.
(cgraph_add_new_function): Use expand_function instead of
rest_of_compilation.
(clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
Move to cgraph.c
(cgraph_inline_p): Remove.
(cgraph_preserve_function_body_p): Move to ipa-inline-transform.
(init_cgraph): Add comment.
* cgraphbuild.c (record_reference, mark_address, mark_load,
mark_store): Do not call analyze_expr hook.
* cgraph.c: Update toplevel comment.
(clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
Move fere from cgraphunit.c
(cgraph_mark_force_output_node): Move to cgraph.h
* cgraph.h: Reorder so the comments match the function placement.
(cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
(cgraph_mark_force_output_node): Move here from cgraph.c
* tree.c (free_lang_data): Do not clear analyze_expr hook.
* ipa-inline-transform.c (preserve_function_body_p): New function.
(inline_transform): Update.
* langhooks.c (lhd_callgraph_analyze_expr): Remove.
* langhooks.h (lang_hooks_for_callgraph): Remove.
(lang_hooks): Remove callgraph.
* tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
* varpool.c: Remove out of date comment.
* langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
(LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
From-SVN: r186832
Diffstat (limited to 'gcc/ipa-inline-transform.c')
-rw-r--r-- | gcc/ipa-inline-transform.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c index c6cbd01..e07468a 100644 --- a/gcc/ipa-inline-transform.c +++ b/gcc/ipa-inline-transform.c @@ -353,6 +353,19 @@ save_inline_function_body (struct cgraph_node *node) return first_clone; } +/* Return true when function body of DECL still needs to be kept around + for later re-use. */ +bool +preserve_function_body_p (struct cgraph_node *node) +{ + gcc_assert (cgraph_global_info_ready); + gcc_assert (!node->alias && !node->thunk.thunk_p); + + /* Look if there is any clone around. */ + if (node->clones) + return true; + return false; +} /* Apply inline plan to function. */ @@ -369,7 +382,7 @@ inline_transform (struct cgraph_node *node) /* We might need the body of this function so that we can expand it inline somewhere else. */ - if (cgraph_preserve_function_body_p (node)) + if (preserve_function_body_p (node)) save_inline_function_body (node); for (e = node->callees; e; e = e->next_callee) |