This patch fixes PR bootstrap/57077. Certain new uses of apply_probability
commite2bc4ec8d5c6cfcf1caacbfab229a22728a11d75
authortejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Apr 2013 13:22:46 +0000 (29 13:22 +0000)
committertejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Apr 2013 13:22:46 +0000 (29 13:22 +0000)
tree9daf54908866e15052bfcfc011bc4753b4b363fb
parentc48f77d534fed8f4995de260aaabc84f0790012d
This patch fixes PR bootstrap/57077. Certain new uses of apply_probability
are actually scaling the counts up, and the scale factor should not
be treated as a probability as the value may exceed REG_BR_PROB_BASE.
One example (from the PR) is when scaling counts up in LTO when merging
profiles. Another example I found when preparing the patch to use
the rounding divide in more places is when inlining COMDAT functions.

Add new helper function apply_scale that does the scaling without
the probability range check. I audited the new uses of apply_probability
and changed the calls as appropriate.

2013-04-29  Teresa Johnson  <tejohnson@google.com>

PR bootstrap/57077
* basic-block.h (apply_scale): New function.
(apply_probability): Use apply_scale.
* gimple-streamer-in.c (input_bb): Ditto.
* lto-streamer-in.c (input_cfg): Ditto.
* lto-cgraph.c (merge_profile_summaries): Ditto.
* tree-optimize.c (execute_fixup_cfg): Ditto.
* tree-inline.c (copy_bb): Update comment to use
apply_scale.
(copy_edges_for_bb): Ditto.
(copy_cfg_body): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198416 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/basic-block.h
gcc/gimple-streamer-in.c
gcc/lto-cgraph.c
gcc/lto-streamer-in.c
gcc/tree-inline.c
gcc/tree-optimize.c