diff options
author | Rong Xu <xur@google.com> | 2013-10-03 17:13:50 +0000 |
---|---|---|
committer | Rong Xu <xur@gcc.gnu.org> | 2013-10-03 17:13:50 +0000 |
commit | 942df7390fb64e26bb7ed6ac58ee9911be4ea5cb (patch) | |
tree | 48352394b524e6a8198bc62633939861961f8a7e /gcc/predict.c | |
parent | 2ef7251f6cd9e228cafa3473929ff55c9cb56928 (diff) | |
download | gcc-942df7390fb64e26bb7ed6ac58ee9911be4ea5cb.zip gcc-942df7390fb64e26bb7ed6ac58ee9911be4ea5cb.tar.gz gcc-942df7390fb64e26bb7ed6ac58ee9911be4ea5cb.tar.bz2 |
predict.c (tree_predict_by_opcode): Get the probability for builtin_expect from param builtin_expect_probability.
* predict.c (tree_predict_by_opcode): Get the probability
for builtin_expect from param builtin_expect_probability.
* params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
* predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
* doc/invoke.texi: Add documentation for builtin-expect-probability.
* gcc.target/i386/cold-attribute-2.c: Fix the test by using original
probability.
* gcc.dg/tree-ssa/ipa-split-5.c: Ditto.
* gcc.dg/tree-ssa/ipa-split-6.c: Ditto.
--This li (t)ene, and those below, will be ignored--
M gcc/params.def
M gcc/predict.def
M gcc/ChangeLog
M gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c
M gcc/testsuite/gcc.dg/tree-ssa/ipa-split-6.c
M gcc/testsuite/gcc.target/i386/cold-attribute-2.c
M gcc/predict.c
M gcc/doc/invoke.texi
From-SVN: r203167
Diffstat (limited to 'gcc/predict.c')
-rw-r--r-- | gcc/predict.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/predict.c b/gcc/predict.c index 2909117..e6a4095 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -2000,11 +2000,12 @@ tree_predict_by_opcode (basic_block bb) BITMAP_FREE (visited); if (val) { + int percent = PARAM_VALUE (BUILTIN_EXPECT_PROBABILITY); + + gcc_assert (percent >= 0 && percent <= 100); if (integer_zerop (val)) - predict_edge_def (then_edge, PRED_BUILTIN_EXPECT, NOT_TAKEN); - else - predict_edge_def (then_edge, PRED_BUILTIN_EXPECT, TAKEN); - return; + percent = 100 - percent; + predict_edge (then_edge, PRED_BUILTIN_EXPECT, HITRATE (percent)); } /* Try "pointer heuristic." A comparison ptr == 0 is predicted as false. |