This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/85712] [8/9 Regression] ICE in all_phi_incrs_profitable_1 at gcc/gimple-ssa-strength-reduction.c:3479
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 09 May 2018 13:51:35 +0000
- Subject: [Bug tree-optimization/85712] [8/9 Regression] ICE in all_phi_incrs_profitable_1 at gcc/gimple-ssa-strength-reduction.c:3479
- Auto-submitted: auto-generated
- References: <bug-85712-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85712
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
CC| |wschmidt at gcc dot gnu.org
Target Milestone|--- |8.2
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think we've been here before. stmt_cand_map gets stale somehow. Oh, it's
actually basis->cand_stmt that is no longer in the IL. It gets replaced by
replace_one_candidate:
#0 gsi_replace (gsi=0x7fffffffd5b0, stmt=<gimple_assign 0x7ffff669db90>,
update_eh_info=false)
at /space/rguenther/src/gcc-slpcost/gcc/gimple-iterator.c:428
#1 0x0000000001ca03e7 in replace_one_candidate (c=0x2dcd280, i=0,
basis_name=<ssa_name 0x7ffff66965a0>)
at
/space/rguenther/src/gcc-slpcost/gcc/gimple-ssa-strength-reduction.c:3741
#2 0x0000000001ca074b in replace_profitable_candidates (c=0x2dcd280)
at
/space/rguenther/src/gcc-slpcost/gcc/gimple-ssa-strength-reduction.c:3829
#3 0x0000000001ca09d9 in analyze_candidates_and_replace ()
at
/space/rguenther/src/gcc-slpcost/gcc/gimple-ssa-strength-reduction.c:3917
#4 0x0000000001ca0bd0 in (anonymous
namespace)::pass_strength_reduction::execute (this=0x2cf1490,
fun=0x7ffff6a5c160)
at
/space/rguenther/src/gcc-slpcost/gcc/gimple-ssa-strength-reduction.c:3995
I suppose
gsi_replace (&gsi, copy_stmt, false);
c->cand_stmt = copy_stmt;
^^^
this is supposed to fix it up. But we fixup only this and following
(next_interp) candidates - but this one has "previous" ones.
52 [24] _99 = S.17_130 * iftmp.23_30;
MULT : (S.17_130 + 0) * iftmp.23_30 : integer(kind=8)
basis: 49 dependent: 63 sibling: 0
next-interp: 53 dead-savings: 0
53 [24] _99 = S.17_130 * iftmp.23_30;
MULT : (iftmp.23_30 + 0) * S.17_130 : integer(kind=8)
basis: 48 dependent: 0 sibling: 0
next-interp: 0 dead-savings: 0
Bill?