From ee80f0c6ba50ebf0300fb0cfe1079a1321295749 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Thu, 24 Oct 2019 11:23:54 +0000 Subject: re PR tree-optimization/92203 (ICE in eliminate_stmt, at tree-ssa-sccvn.c:5492) 2019-10-24 Richard Biener PR tree-optimization/92203 * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Skip eliminating conversion stmts inserted by insertion. * gcc.dg/torture/pr92203.c: New testcase. From-SVN: r277374 --- gcc/tree-ssa-sccvn.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'gcc/tree-ssa-sccvn.c') diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index 57331ab..3872168 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -5459,8 +5459,13 @@ eliminate_dom_walker::eliminate_stmt (basic_block b, gimple_stmt_iterator *gsi) /* If this is an assignment from our leader (which happens in the case the value-number is a constant) - then there is nothing to do. */ - if (gimple_assign_single_p (stmt) + then there is nothing to do. Likewise if we run into + inserted code that needed a conversion because of + our type-agnostic value-numbering of loads. */ + if ((gimple_assign_single_p (stmt) + || (is_gimple_assign (stmt) + && (CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (stmt)) + || gimple_assign_rhs_code (stmt) == VIEW_CONVERT_EXPR))) && sprime == gimple_assign_rhs1 (stmt)) return; -- cgit v1.1