diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2016-06-01 01:33:08 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2016-05-31 23:33:08 +0000 |
commit | 050fb2092b4e8fc92243112565f7230e672e4399 (patch) | |
tree | 9897cd26c87d0ce3445534bb6224cf4f786ec88c /gcc/predict.c | |
parent | 226e9d1aabee7a3524fd6f62dc1390ce7881b7a5 (diff) | |
download | gcc-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.c | 9 |
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); } } |