From b1471ee0deedd79e8e83cc12dc4851fef9631d16 Mon Sep 17 00:00:00 2001 From: hubicka Date: Wed, 27 Apr 2011 12:13:08 +0000 Subject: [PATCH] * ipa-prop.c (function_insertion_hook_holder): New holder. (ipa_add_new_function): New function. (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks): Register/deregister holder. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173026 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/ipa-prop.c | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 276ef48..4c2dd01 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-04-27 Jan Hubicka + + * ipa-prop.c (function_insertion_hook_holder): New holder. + (ipa_add_new_function): New function. + (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks): Register/deregister + holder. + 2011-04-27 Richard Guenther PR tree-optimization/48772 diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 5691193..73203a38 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -63,6 +63,7 @@ static struct cgraph_edge_hook_list *edge_removal_hook_holder; static struct cgraph_node_hook_list *node_removal_hook_holder; static struct cgraph_2edge_hook_list *edge_duplication_hook_holder; static struct cgraph_2node_hook_list *node_duplication_hook_holder; +static struct cgraph_node_hook_list *function_insertion_hook_holder; /* Add cgraph NODE described by INFO to the worklist WL regardless of whether it is in one or not. It should almost never be used directly, as opposed to @@ -2058,6 +2059,15 @@ ipa_node_duplication_hook (struct cgraph_node *src, struct cgraph_node *dst, new_info->node_enqueued = old_info->node_enqueued; } + +/* Analyze newly added function into callgraph. */ + +static void +ipa_add_new_function (struct cgraph_node *node, void *data ATTRIBUTE_UNUSED) +{ + ipa_analyze_node (node); +} + /* Register our cgraph hooks if they are not already there. */ void @@ -2075,6 +2085,8 @@ ipa_register_cgraph_hooks (void) if (!node_duplication_hook_holder) node_duplication_hook_holder = cgraph_add_node_duplication_hook (&ipa_node_duplication_hook, NULL); + function_insertion_hook_holder = + cgraph_add_function_insertion_hook (&ipa_add_new_function, NULL); } /* Unregister our cgraph hooks if they are not already there. */ @@ -2090,6 +2102,8 @@ ipa_unregister_cgraph_hooks (void) edge_duplication_hook_holder = NULL; cgraph_remove_node_duplication_hook (node_duplication_hook_holder); node_duplication_hook_holder = NULL; + cgraph_remove_function_insertion_hook (function_insertion_hook_holder); + function_insertion_hook_holder = NULL; } /* Allocate all necessary data structures necessary for indirect inlining. */ -- 2.7.4