Hi, shrink-wrap misses profile update in handle_simple_exit. Profiledbootstrapped/regtested x86_64-linux, comitted.
Honza * shrink-wrap.c (handle_simple_exit): Update profile. (try_shrink_wrapping): Upate profile. Index: shrink-wrap.c =================================================================== --- shrink-wrap.c (revision 248909) +++ shrink-wrap.c (working copy) @@ -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 = EDGE_FREQUENCY (e); 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; @@ -981,6 +983,7 @@ try_shrink_wrapping (edge *entry_edge, r basic_block new_bb = create_empty_bb (EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb); BB_COPY_PARTITION (new_bb, pro); + new_bb->count = profile_count::zero (); if (dump_file) fprintf (dump_file, "Made prologue block %d\n", new_bb->index);