aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2005-06-02 21:41:31 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2005-06-02 19:41:31 +0000
commit6b02a4997be30a1cb81a573ea3abc68802f10b2a (patch)
tree581a728808f9ec389dc440901acdffc5a28d346f /gcc/cgraphunit.c
parent04b0eed045fd952d1e8889dd06f07563ce16160b (diff)
downloadgcc-6b02a4997be30a1cb81a573ea3abc68802f10b2a.zip
gcc-6b02a4997be30a1cb81a573ea3abc68802f10b2a.tar.gz
gcc-6b02a4997be30a1cb81a573ea3abc68802f10b2a.tar.bz2
cgraph.c (cgraph_node): Maintain master clones.
* cgraph.c (cgraph_node): Maintain master clones. (cgraph_remove_node): Likewise. (availability_names): New static variable. (dump_cgraph_node): Dump availability. (dump_cgraph_varpool_node): Likewise. (cgraph_is_master_clone, cgraph_master_clone, cgraph_function_body_availability, cgraph_variable_initializer_availability): New functions. * cgraph.h (availability): New enum. (struct cgraph_node): Add master_clone. (cgraph_is_master_clone, cgraph_master_clone, cgraph_function_body_availability, cgraph_variable_initializer_availability): Declare. * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready. (cgraph_remove_unreachable_nodes): Remove unreachable nodes. * ipa-inline.c (cgraph_decide_inlining): Do not call cgraph_remove_unreachable_nodes. From-SVN: r100507
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 7f8a96d..ee859f7 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -967,6 +967,8 @@ cgraph_expand_function (struct cgraph_node *node)
points to the dead function body. */
cgraph_node_remove_callees (node);
}
+
+ cgraph_function_flags_ready = true;
}
/* Return true when CALLER_DECL should be inlined into CALLEE_DECL. */
@@ -1128,6 +1130,9 @@ cgraph_optimize (void)
dump_cgraph (cgraph_dump_file);
}
ipa_passes ();
+ /* This pass remove bodies of extern inline functions we never inlined.
+ Do this later so other IPA passes see what is really going on. */
+ cgraph_remove_unreachable_nodes (false, dump_file);
cgraph_global_info_ready = true;
if (cgraph_dump_file)
{