aboutsummaryrefslogtreecommitdiff
path: root/gcc/shrink-wrap.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2017-06-05 19:41:32 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2017-06-05 17:41:32 +0000
commitaea5e79a63f965a9ed5fd2ef1943e3865495e987 (patch)
tree52c60043f6ed486d65cb1a8a38cb71979166465c /gcc/shrink-wrap.c
parent2f20e7db2caea4909ddff539b2419c9f34c907c4 (diff)
downloadgcc-aea5e79a63f965a9ed5fd2ef1943e3865495e987.zip
gcc-aea5e79a63f965a9ed5fd2ef1943e3865495e987.tar.gz
gcc-aea5e79a63f965a9ed5fd2ef1943e3865495e987.tar.bz2
cfgexpand.c (expand_gimple_tailcall): Initialize profile of new edge.
* cfgexpand.c (expand_gimple_tailcall): Initialize profile of new edge. * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing profile in callgraph edge. * profile-count.h (apply_probability): If THIS is 0, then result is 0 (apply_scale): Likewise. * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body): Also scale profile when inlining function with zero profile. (initialize_cfun): Update exit block profile even when it is zero. * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case when profile is read. From-SVN: r248885
Diffstat (limited to 'gcc/shrink-wrap.c')
-rw-r--r--gcc/shrink-wrap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/shrink-wrap.c b/gcc/shrink-wrap.c
index eaa1522..fb235e2 100644
--- a/gcc/shrink-wrap.c
+++ b/gcc/shrink-wrap.c
@@ -561,9 +561,11 @@ handle_simple_exit (edge e)
BB_END (old_bb) = end;
redirect_edge_succ (e, new_bb);
+ new_bb->count = e->count;
+ new_bb->frequency = e->frequency;
e->flags |= EDGE_FALLTHRU;
- e = make_edge (new_bb, EXIT_BLOCK_PTR_FOR_FN (cfun), 0);
+ e = make_single_succ_edge (new_bb, EXIT_BLOCK_PTR_FOR_FN (cfun), 0);
}
e->flags &= ~EDGE_FALLTHRU;