aboutsummaryrefslogtreecommitdiff
path: root/gcc/predict.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2016-06-07 23:34:27 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2016-06-07 21:34:27 +0000
commitd1fcc2bdef93fa453b326749888275c80e39cefc (patch)
treea4741a4afa5e4271b8f222101f278886481db7fb /gcc/predict.c
parent373c00952c0a3cb0224f2259487f6481c3c946e9 (diff)
downloadgcc-d1fcc2bdef93fa453b326749888275c80e39cefc.zip
gcc-d1fcc2bdef93fa453b326749888275c80e39cefc.tar.gz
gcc-d1fcc2bdef93fa453b326749888275c80e39cefc.tar.bz2
predict.c (predict_iv_comparison): Mention that heuristics is broken.
* predict.c (predict_iv_comparison): Mention that heuristics is broken. (return_prediction): PRED_CONST_RETURN predict return as not taken. * predict.def (PRED_CONTINUE): Change hitrate 50->67 (PRED_LOOP_BRANCH): Document predictor as broken. (PRED_LOOP_EXIT): Change hitrate 91->92. (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83. (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70. (PRED_OPCODE_POSITIVE): Change hitrate 79->64. (PRED_OPCODE_NONEQUAL): Change hitrate 91->66. (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66 (PRED_CALL): Chane hitrate 71->67. (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54. (PRED_GOTO): Document as unused right now. (PRED_CONST_RETURN): Change hitrate 67->69 (PRED_NEGATIVE_RETURN): Change hitrate 96->98 (PRED_NULL_RETURN): Change hitrate 91->90. (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98. (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues. (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99. * gcc.dg/ipa/inlinehint-4.c: Disable partial inlining. * gcc.dg/predict-1.c: Update template for new predictor hitrates. * gcc.dg/predict-3.c: Update template. * gcc.dg/predict-5.c: Update template. * gcc.dg/predict-6.c: Update template. * gcc.dg/predict-9.c: Update template. * gcc.dg/predict-9.c: Update template. * gcc.dg/tree-ssa/attr-hotcold-2.c: Update template. From-SVN: r237185
Diffstat (limited to 'gcc/predict.c')
-rw-r--r--gcc/predict.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/predict.c b/gcc/predict.c
index 32d4567..6f81b53 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -1357,6 +1357,7 @@ predict_iv_comparison (struct loop *loop, basic_block bb,
probability = tem.to_uhwi ();
}
+ /* FIXME: The branch prediction seems broken. It has only 20% hitrate. */
if (!overall_overflow)
predict_edge (then_edge, PRED_LOOP_IV_COMPARE, probability);
@@ -2159,7 +2160,7 @@ return_prediction (tree val, enum prediction *prediction)
if (TREE_CONSTANT (val)
&& (!integer_zerop (val) && !integer_onep (val)))
{
- *prediction = TAKEN;
+ *prediction = NOT_TAKEN;
return PRED_CONST_RETURN;
}
}