diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-01 23:20:15 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-01 23:20:15 +0000 |
commit | a1e880328b19d607aeef6885338b2d5df8fe86bb (patch) | |
tree | 851bbe5f7a341f0badf18bf5a177dfbf5e290e5c /gcc/ipa-inline.c | |
parent | 272bcfefaeeb36604f125789a64469983c76f9b5 (diff) | |
download | gcc-a1e880328b19d607aeef6885338b2d5df8fe86bb.tar.gz |
* cgraph.c (cgraph_clone_node): Add redirect_callers parameter.
(cgraph_create_virtual_clone): Just pass redirect_callers
around.
* cgraph.h (cgraph_clone_node): Update prototype.
* ipa-pure-const.c (self_recursive_p): New function.
(propagate): Use it.
* ipa-inline.c (cgraph_clone_inlined_nodes,
* cgraph_decide_recursive_inlining): Update.
* gcc.dg/tree-ssa/ipa-cp-1.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152388 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r-- | gcc/ipa-inline.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 662e13f2512..8851d605372 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -238,7 +238,7 @@ cgraph_clone_inlined_nodes (struct cgraph_edge *e, bool duplicate, { struct cgraph_node *n; n = cgraph_clone_node (e->callee, e->count, e->frequency, e->loop_nest, - update_original); + update_original, NULL); cgraph_redirect_edge_callee (e, n); } } @@ -723,7 +723,8 @@ cgraph_decide_recursive_inlining (struct cgraph_node *node, cgraph_node_name (node)); /* We need original clone to copy around. */ - master_clone = cgraph_clone_node (node, node->count, CGRAPH_FREQ_BASE, 1, false); + master_clone = cgraph_clone_node (node, node->count, CGRAPH_FREQ_BASE, 1, + false, NULL); master_clone->needed = true; for (e = master_clone->callees; e; e = e->next_callee) if (!e->inline_failed) |