diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2017-06-05 19:41:32 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2017-06-05 17:41:32 +0000 |
commit | aea5e79a63f965a9ed5fd2ef1943e3865495e987 (patch) | |
tree | 52c60043f6ed486d65cb1a8a38cb71979166465c /gcc/shrink-wrap.c | |
parent | 2f20e7db2caea4909ddff539b2419c9f34c907c4 (diff) | |
download | gcc-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.c | 4 |
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; |