summaryrefslogtreecommitdiff
path: root/gcc/ipa-inline-transform.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-11-22 22:08:07 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2014-11-22 21:08:07 +0000
commit4ad08ee83804220dcc7e059e11377f18a2bb00ba (patch)
tree7f57169135a855a1a28976503c91b1195e9e7d5a /gcc/ipa-inline-transform.c
parent2d3a20632b8bbd0b80d2bbaba6d93032c0fb909b (diff)
downloadgcc-4ad08ee83804220dcc7e059e11377f18a2bb00ba.tar.gz
ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones as having abstract origin used.
* 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. From-SVN: r217973
Diffstat (limited to 'gcc/ipa-inline-transform.c')
-rw-r--r--gcc/ipa-inline-transform.c2
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);
}
}