diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-22 21:08:07 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-22 21:08:07 +0000 |
commit | ca92a2511ecb05fb7c84df998723c257f23b6ca7 (patch) | |
tree | 7f57169135a855a1a28976503c91b1195e9e7d5a /gcc/ipa-inline-transform.c | |
parent | 3392253210b375a71af7dc832d2786a0a41f21d2 (diff) | |
download | gcc-ca92a2511ecb05fb7c84df998723c257f23b6ca7.tar.gz |
* ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
as having abstract origin used.
* ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract origin check.
(clone_inlined_nodes): Copy abstract originflag.
* lto-cgraph.c (compute_ltrans_boundary): Use get_create to get abstract origin node.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217973 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline-transform.c')
-rw-r--r-- | gcc/ipa-inline-transform.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c index 9b806c1bf66..a64e4dd379c 100644 --- a/gcc/ipa-inline-transform.c +++ b/gcc/ipa-inline-transform.c @@ -100,7 +100,6 @@ can_remove_node_now_p_1 (struct cgraph_node *node) the callgraph so references can point to it. */ return (!node->address_taken && !node->has_aliases_p () - && !node->used_as_abstract_origin && node->can_remove_if_no_direct_calls_p () /* Inlining might enable more devirtualizing, so we want to remove those only after all devirtualizable virtual calls are processed. @@ -218,6 +217,7 @@ clone_inlined_nodes (struct cgraph_edge *e, bool duplicate, update_original, vNULL, true, inlining_into, NULL); + n->used_as_abstract_origin = e->callee->used_as_abstract_origin; e->redirect_callee (n); } } |