diff options
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 9 |
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) { |