aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDehao Chen <dehao@google.com>2013-04-08 17:57:20 +0000
committerDehao Chen <dehao@google.com>2013-04-08 17:57:20 +0000
commit1aa2b313aeeef7c67fd7a3ec0865f091f3cc9466 (patch)
tree37c1eff0c8e7ad10cc5cc7ce1b1db4e7d1dd2150
parent6eabd3fe354e694c8af80886eb0995fb7a338a35 (diff)
In the current implementation, update_all_callee_keys only invokes
update_caller_keys for one edge. For the AutoFDO case, it could cause important edges not being updated because top-down inline pattern is very popular in AutoFDO. This patch ensures all edges are updated in update_caller_keys. 2013-04-08 Dehao Chen <dehao@google.com> * gcc/ipa-inline.c (update_all_callee_keys): Update all callers for AutoFDO. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/google/gcc-4_7@197596 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ipa-inline.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 6e56b5bfee2..d1ea7653e6e 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -1234,7 +1234,8 @@ update_all_callee_keys (fibheap_t heap, struct cgraph_node *node,
Reset their caches */
reset_node_growth_cache (callee);
if (e->inline_failed)
- update_caller_keys (heap, callee, updated_nodes, e);
+ update_caller_keys (heap, callee, updated_nodes,
+ flag_auto_profile ? NULL : e);
if (e->next_callee)
e = e->next_callee;
else