Hi.
I'm sending fix for 2 locations where we have a typo.
Second hunk is pre-approved by Rich, first one needs to be approved
by Honza?
Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
Ready to be installed?
Thanks,
Martin
gcc/ChangeLog:
2019-12-09 Martin Liska <[email protected]>
PR tree-optimization/92862
* predict.c (predict_paths_leading_to_edge): Fix typo from e to e2.
* tree-ssa-loop-niter.c (loop_only_exit_p): Return false
instead of true;
---
gcc/predict.c | 7 +++----
gcc/tree-ssa-loop-niter.c | 10 +++-------
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/gcc/predict.c b/gcc/predict.c
index 67f850de17a..8db24816d29 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -3217,16 +3217,15 @@ predict_paths_leading_to_edge (edge e, enum br_predictor pred,
basic_block bb = e->src;
FOR_EACH_EDGE (e2, ei, bb->succs)
if (e2->dest != e->src && e2->dest != e->dest
- && !unlikely_executed_edge_p (e)
+ && !unlikely_executed_edge_p (e2)
&& !dominated_by_p (CDI_POST_DOMINATORS, e->src, e2->dest))
{
has_nonloop_edge = true;
break;
}
+
if (!has_nonloop_edge)
- {
- predict_paths_for_bb (bb, bb, pred, taken, auto_bitmap (), in_loop);
- }
+ predict_paths_for_bb (bb, bb, pred, taken, auto_bitmap (), in_loop);
else
predict_edge_def (e, pred, taken);
}
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index f0dd9a0b363..39e937705f1 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -2376,13 +2376,9 @@ loop_only_exit_p (const class loop *loop, basic_block *body, const_edge exit)
return false;
for (i = 0; i < loop->num_nodes; i++)
- {
- for (bsi = gsi_start_bb (body[i]); !gsi_end_p (bsi); gsi_next (&bsi))
- if (stmt_can_terminate_bb_p (gsi_stmt (bsi)))
- {
- return true;
- }
- }
+ for (bsi = gsi_start_bb (body[i]); !gsi_end_p (bsi); gsi_next (&bsi))
+ if (stmt_can_terminate_bb_p (gsi_stmt (bsi)))
+ return false;
return true;
}