http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58862
--- Comment #27 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Tue Nov 26 03:48:06 2013 New Revision: 205378 URL: http://gcc.gnu.org/viewcvs?rev=205378&root=gcc&view=rev Log: Backport a variety of profile maintanance fixes from trunk to google/4_8: r203041 r203126 r203152 r203395 r203823 r203830 r204178 r204704 r204756 r197595 198416 202128 ------------------------------------------------------------------------ r203041 | law | 2013-09-30 13:09:25 -0700 (Mon, 30 Sep 2013) | 7 lines 2013-09-30 Teresa Johnson <tejohn...@google.com> * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges): Update redirected out edge count in joiner case. (ssa_redirect_edges): Common the joiner and non-joiner cases so that joiner case gets profile updates. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r203126 | tejohnson | 2013-10-02 12:18:17 -0700 (Wed, 02 Oct 2013) | 18 lines 2013-10-02 Teresa Johnson <tejohn...@google.com> * dojump.c (do_jump_1): Divide probability between both conditions of a TRUTH_ORIF_EXPR. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r203152 | tejohnson | 2013-10-02 22:06:05 -0700 (Wed, 02 Oct 2013) | 8 lines 2013-10-02 Teresa Johnson <tejohn...@google.com> * predict.c (probably_never_executed): New function. (probably_never_executed_bb_p): Invoke probably_never_executed. (probably_never_executed_edge_p): Ditto. * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): Treat profile insanities conservatively. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r203395 | tejohnson | 2013-10-10 13:30:08 -0700 (Thu, 10 Oct 2013) | 9 lines 2013-10-10 Teresa Johnson <tejohn...@google.com> * predict.c (tree_estimate_probability): Add new parameter for estimate_bb_frequencies. (estimate_bb_frequencies): Add new parameter to force estimation. (rebuild_frequencies): When max frequency in function is small, recompute counts from frequencies. * predict.h (estimate_bb_frequencies): New parameter. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r203823 | tejohnson | 2013-10-18 07:36:53 -0700 (Fri, 18 Oct 2013) | 5 lines 2013-10-18 Teresa Johnson <tejohn...@google.com> * tree-ssa-tail-merge.c (replace_block_by): Update edge weights during merging. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r203830 | tejohnson | 2013-10-18 10:25:44 -0700 (Fri, 18 Oct 2013) | 6 lines 2013-10-18 Teresa Johnson <tejohn...@google.com> * predict.c (probably_never_executed): Compare frequency-based count to number of training runs. * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r204178 | tejohnson | 2013-10-29 13:39:49 -0700 (Tue, 29 Oct 2013) | 6 lines 2013-10-29 Teresa Johnson <tejohn...@google.com> PR ipa/58862 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile insanities when updating probabilities. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r204704 | tejohnson | 2013-11-12 07:03:28 -0800 (Tue, 12 Nov 2013) | 12 lines 2013-11-12 Teresa Johnson <tejohn...@google.com> Jan Hubicka <j...@suse.cz> * predict.c (drop_profile): New function. (handle_missing_profiles): Ditto. (counts_to_freqs): Don't overwrite estimated frequencies when function has no profile counts. * predict.h (handle_missing_profiles): Declare. * tree-inline.c (freqs_to_counts): New function. (copy_cfg_body): Invoke freqs_to_counts as needed. * tree-profile.c (tree_profiling): Invoke handle_missing_profiles. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r204756 | tejohnson | 2013-11-13 13:51:44 -0800 (Wed, 13 Nov 2013) | 6 lines 2013-11-13 Teresa Johnson <tejohn...@google.com> PR ipa/58862 * predict.c (drop_profile): Error is currently too strict. (handle_missing_profiles): Pass call_count to drop_profile. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r197595 | tejohnson | 2013-04-08 10:39:10 -0700 (Mon, 08 Apr 2013) | 60 lines 2013-04-08 Teresa Johnson <tejohn...@google.com> * basic-block.h (GCOV_COMPUTE_SCALE): Define. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r198416 | tejohnson | 2013-04-29 06:22:46 -0700 (Mon, 29 Apr 2013) | 25 lines 2013-04-29 Teresa Johnson <tejohn...@google.com> * basic-block.h (apply_scale): New function. (apply_probability): Use apply_scale. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r202128 | hubicka | 2013-08-31 06:32:31 -0700 (Sat, 31 Aug 2013) | 2 lines * basic-block.h (apply_scale): Make scale parmeter gcov_type. ------------------------------------------------------------------------ Modified: branches/google/gcc-4_8/gcc/basic-block.h branches/google/gcc-4_8/gcc/bb-reorder.c branches/google/gcc-4_8/gcc/dojump.c branches/google/gcc-4_8/gcc/params.def branches/google/gcc-4_8/gcc/predict.c branches/google/gcc-4_8/gcc/predict.h branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-3.c branches/google/gcc-4_8/gcc/tree-inline.c branches/google/gcc-4_8/gcc/tree-profile.c branches/google/gcc-4_8/gcc/tree-ssa-tail-merge.c branches/google/gcc-4_8/gcc/tree-ssa-threadupdate.c