https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81790
Bug ID: 81790 Summary: [8 Regression] ICE in vn_nary_build_or_lookup_1, at tree-ssa-sccvn.c:1738 Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- Following ICEs starting from r247092: $ cat /tmp/ice.i typedef int a __attribute__ ((__vector_size__ (16))); typedef struct { a b; } c; int d, e; void foo (c *ptr); void bar () { double b = 1842.9028; c g, h; if (d) b = 77.7998; for (; e;) { g.b = g.b = g.b + g.b; h.b = (a){b}; h.b = h.b + h.b; } foo (&g); foo (&h); } $ gcc -O1 --param sccvn-max-scc-size=10 /tmp/ice.i during GIMPLE pass: fre /tmp/ice.i: In function ‘bar’: /tmp/ice.i:25:1: internal compiler error: in vn_nary_build_or_lookup_1, at tree-ssa-sccvn.c:1738 } ^ 0xd6d693 vn_nary_build_or_lookup_1 ../../gcc/tree-ssa-sccvn.c:1738 0xd6fbe7 vn_nary_build_or_lookup ../../gcc/tree-ssa-sccvn.c:1774 0xd6fbe7 vn_reference_lookup_3 ../../gcc/tree-ssa-sccvn.c:2053 0xcb5b9a walk_non_aliased_vuses(ao_ref*, tree_node*, void* (*)(ao_ref*, tree_node*, unsigned int, void*), void* (*)(ao_ref*, tree_node*, void*, bool*), tree_node* (*)(tree_node*), void*) ../../gcc/tree-ssa-alias.c:2827 0xd6e2a9 vn_reference_lookup(tree_node*, tree_node*, vn_lookup_kind, vn_reference_s**, bool) ../../gcc/tree-ssa-sccvn.c:2466 0xd42cf0 eliminate_dom_walker::before_dom_children(basic_block_def*) ../../gcc/tree-ssa-pre.c:4544 0x12d53aa dom_walker::walk(basic_block_def*) ../../gcc/domwalk.c:291 0xd41a4b eliminate ../../gcc/tree-ssa-pre.c:4832 0xd41b1e execute ../../gcc/tree-ssa-pre.c:5277