diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-08-08 14:15:15 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-08-08 14:15:15 +0000 |
commit | 9df17e791314bc9ed3b603098ab5b775bf8297a4 (patch) | |
tree | a15a1a431d19e3655466a7906f95ba58df17e24a /gcc/cgraphbuild.c | |
parent | ad504e501cb508851dfce33dcf69e854ded3edcf (diff) | |
download | gcc-9df17e791314bc9ed3b603098ab5b775bf8297a4.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201601 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraphbuild.c')
-rw-r--r-- | gcc/cgraphbuild.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c index a7872dea9e1..333deed8146 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; } |