diff options
author | Dehao Chen <dehao@google.com> | 2013-04-08 17:57:20 +0000 |
---|---|---|
committer | Dehao Chen <dehao@google.com> | 2013-04-08 17:57:20 +0000 |
commit | 1aa2b313aeeef7c67fd7a3ec0865f091f3cc9466 (patch) | |
tree | 37c1eff0c8e7ad10cc5cc7ce1b1db4e7d1dd2150 | |
parent | 6eabd3fe354e694c8af80886eb0995fb7a338a35 (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.c | 3 |
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 |