aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-09-19 06:54:10 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-09-19 06:54:10 +0000
commited4fd957296b0633d21996a9c4cd5a5f3a2ee2ba (patch)
tree2d5ad4e14cb5cb424624ca7ddfe08378947bf76a /gcc/tree-ssa-pre.c
parentcdf060f898adc6299288008f01a1f417d7409f4f (diff)
downloadgcc-ed4fd957296b0633d21996a9c4cd5a5f3a2ee2ba.zip
gcc-ed4fd957296b0633d21996a9c4cd5a5f3a2ee2ba.tar.gz
gcc-ed4fd957296b0633d21996a9c4cd5a5f3a2ee2ba.tar.bz2
re PR tree-optimization/77514 (ICE in VN_INFO_GET, at tree-ssa-sccvn.c:406 w/ -O2 (and above))
2016-09-19 Richard Biener <rguenther@suse.de> PR tree-optimization/77514 * tree-ssa-pre.c (create_expression_by_pieces): Optimize search for folded stmt. From-SVN: r240226
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)
{