aboutsummaryrefslogtreecommitdiff
path: root/gcc/predict.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2016-06-01 01:33:08 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2016-05-31 23:33:08 +0000
commit050fb2092b4e8fc92243112565f7230e672e4399 (patch)
tree9897cd26c87d0ce3445534bb6224cf4f786ec88c /gcc/predict.c
parent226e9d1aabee7a3524fd6f62dc1390ce7881b7a5 (diff)
downloadgcc-050fb2092b4e8fc92243112565f7230e672e4399.zip
gcc-050fb2092b4e8fc92243112565f7230e672e4399.tar.gz
gcc-050fb2092b4e8fc92243112565f7230e672e4399.tar.bz2
predict-lop-exit-1.C: Update template for new predictor name.
* g++.d/predict-lop-exit-1.C: Update template for new predictor name. * g++.d/predict-lop-exit-2.C: Update template for new predictor name. * g++.d/predict-lop-exit-2.C: Update template for new predictor name. * predict.def (PRED_LOOP_EXTRA_EXIT): Define. * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT. (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of PRED_LOOP_EXIT. From-SVN: r236968
Diffstat (limited to 'gcc/predict.c')
-rw-r--r--gcc/predict.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/predict.c b/gcc/predict.c
index 396e150..e9dda20 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -1245,7 +1245,8 @@ predict_iv_comparison (struct loop *loop, basic_block bb,
if (predicted_by_p (bb, PRED_LOOP_ITERATIONS_GUESSED)
|| predicted_by_p (bb, PRED_LOOP_ITERATIONS)
- || predicted_by_p (bb, PRED_LOOP_EXIT))
+ || predicted_by_p (bb, PRED_LOOP_EXIT)
+ || predicted_by_p (bb, PRED_LOOP_EXTRA_EXIT))
return;
stmt = last_stmt (bb);
@@ -1418,7 +1419,7 @@ predict_iv_comparison (struct loop *loop, basic_block bb,
The edge BB7->BB8 is loop exit because BB8 is outside of the loop.
From the dataflow, we can infer that BB4->BB6 and BB5->BB6 are also loop
exits. This function takes BB7->BB8 as input, and finds out the extra loop
- exits to predict them using PRED_LOOP_EXIT. */
+ exits to predict them using PRED_LOOP_EXTRA_EXIT. */
static void
predict_extra_loop_exits (edge exit_edge)
@@ -1474,12 +1475,12 @@ predict_extra_loop_exits (edge exit_edge)
continue;
if (EDGE_COUNT (e->src->succs) != 1)
{
- predict_paths_leading_to_edge (e, PRED_LOOP_EXIT, NOT_TAKEN);
+ predict_paths_leading_to_edge (e, PRED_LOOP_EXTRA_EXIT, NOT_TAKEN);
continue;
}
FOR_EACH_EDGE (e1, ei, e->src->preds)
- predict_paths_leading_to_edge (e1, PRED_LOOP_EXIT, NOT_TAKEN);
+ predict_paths_leading_to_edge (e1, PRED_LOOP_EXTRA_EXIT, NOT_TAKEN);
}
}