aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r--gcc/tree-ssa-pre.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index d1fe72c..0c6f820 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -2881,13 +2881,16 @@ create_expression_by_pieces (basic_block block, pre_expr expr,
}
/* Likewise if we simplified to sth not queued for insertion. */
bool found = false;
- gsi = gsi_start (forced_stmts);
- for (; !gsi_end_p (gsi); gsi_next (&gsi))
+ gsi = gsi_last (forced_stmts);
+ for (; !gsi_end_p (gsi); gsi_prev (&gsi))
{
gimple *stmt = gsi_stmt (gsi);
tree forcedname = gimple_get_lhs (stmt);
if (forcedname == folded)
- found = true;
+ {
+ found = true;
+ break;
+ }
}
if (! found)
{