From 1aa2b313aeeef7c67fd7a3ec0865f091f3cc9466 Mon Sep 17 00:00:00 2001 From: Dehao Chen Date: Mon, 8 Apr 2013 17:57:20 +0000 Subject: 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 * 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 --- gcc/ipa-inline.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3