From d45b0de89c8031eb522fa6eed5c7c385fd0c36bf Mon Sep 17 00:00:00 2001 From: dehao Date: Sat, 23 Nov 2013 00:12:11 +0000 Subject: [PATCH] Remove the zero-count heuristic when propagating AutoFDO profile. 2013-11-22 Dehao Chen * gcc/auto-profile.c (afdo_propagate_multi_edge): Remove zero-count heuristic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/google@205294 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc-4_8/gcc/auto-profile.c | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/gcc-4_8/gcc/auto-profile.c b/gcc-4_8/gcc/auto-profile.c index 0352d54eb49..dbcd89907f8 100644 --- a/gcc-4_8/gcc/auto-profile.c +++ b/gcc-4_8/gcc/auto-profile.c @@ -1122,29 +1122,16 @@ afdo_propagate_multi_edge (bool is_succ) FOR_EACH_BB (bb) { - edge e, unknown_edge = NULL, zero_edge = NULL; + edge e, unknown_edge = NULL; edge_iterator ei; int num_unknown_edge = 0; gcov_type total_known_count = 0; - if (is_succ) - { - FOR_EACH_EDGE (e, ei, bb->succs) - if ((e->flags & EDGE_ANNOTATED) == 0) - num_unknown_edge ++, unknown_edge = e; - else if (e->count == 0) - zero_edge = e; - else - total_known_count += e->count; - } - else - { - FOR_EACH_EDGE (e, ei, bb->preds) - if ((e->flags & EDGE_ANNOTATED) == 0) - num_unknown_edge ++, unknown_edge = e; - else - total_known_count += e->count; - } + FOR_EACH_EDGE (e, ei, is_succ ? bb->succs : bb->preds) + if ((e->flags & EDGE_ANNOTATED) == 0) + num_unknown_edge ++, unknown_edge = e; + else + total_known_count += e->count; if (num_unknown_edge == 0) { @@ -1153,12 +1140,6 @@ afdo_propagate_multi_edge (bool is_succ) bb->count = total_known_count; changed = true; } - else if (zero_edge != NULL && total_known_count < bb->count - && bb->loop_father && bb->loop_father->header == bb) - { - zero_edge->count = bb->count - total_known_count; - changed = true; - } if ((bb->flags & BB_ANNOTATED) == 0) { bb->flags |= BB_ANNOTATED; -- 2.11.4.GIT