aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphbuild.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2013-08-08 16:15:15 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2013-08-08 14:15:15 +0000
commit71cafea943fbb7a69a92c80e6dfdb5de119bfb33 (patch)
treea15a1a431d19e3655466a7906f95ba58df17e24a /gcc/cgraphbuild.c
parent27d2e61268434dc682b81227e93ae9022d4d290f (diff)
downloadgcc-71cafea943fbb7a69a92c80e6dfdb5de119bfb33.zip
gcc-71cafea943fbb7a69a92c80e6dfdb5de119bfb33.tar.gz
gcc-71cafea943fbb7a69a92c80e6dfdb5de119bfb33.tar.bz2
cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
* cgraphbuild.c (build_cgraph_edges): Do not walk into debugs. (make_pass_rebuild_cgraph_edges): Also clear references. * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier. * ipa-inline-transform.c (inline_transform): Remove all references after inlining. * cgraphunit.c (expand_function): Remove all references after expansion. * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting. (ipa_find_reference): Rewrite to iterator. (remove_stmt_references): Likewise. (ipa_clear_stmts_in_references): New function. * ipa-ref.h (ipa_clear_stmts_in_references): Declare. * cgraphclones.c (cgraph_materialize_all_clones): Remove or clear references. * ipa-split.c (split_function): Remove references in split function. From-SVN: r201601
Diffstat (limited to 'gcc/cgraphbuild.c')
-rw-r--r--gcc/cgraphbuild.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c
index a7872de..333deed 100644
--- a/gcc/cgraphbuild.c
+++ b/gcc/cgraphbuild.c
@@ -318,6 +318,9 @@ build_cgraph_edges (void)
gimple stmt = gsi_stmt (gsi);
tree decl;
+ if (is_gimple_debug (stmt))
+ continue;
+
if (is_gimple_call (stmt))
{
int freq = compute_call_stmt_bb_frequency (current_function_decl,
@@ -537,7 +540,9 @@ make_pass_rebuild_cgraph_edges (gcc::context *ctxt)
static unsigned int
remove_cgraph_callee_edges (void)
{
- cgraph_node_remove_callees (cgraph_get_node (current_function_decl));
+ struct cgraph_node *node = cgraph_get_node (current_function_decl);
+ cgraph_node_remove_callees (node);
+ ipa_remove_all_references (&node->symbol.ref_list);
return 0;
}