[Bug tree-optimization/92275] [10 Regression] ICE: error: definition in block 11 does not dominate use in block 15 since r277566

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Oct 30 09:16:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92275

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
We run into

      tree guard_arg = find_guard_arg (loop, epilog, update_phi);
      /* If the var is live after loop but not a reduction, we simply
         use the old arg.  */
      if (!guard_arg)
        guard_arg = old_arg;

which means we failed to generate a LC PHI for the LIVE stmt during
peeling.  Then epilogue creation simply does

      /* Find the loop-closed-use at the loop exit of the original scalar
         result.  (The reduction result is expected to have two immediate uses,
         one at the latch block, and one at the loop exit).  For double
         reductions we are looking for exit phis of the outer loop.  */
      FOR_EACH_IMM_USE_FAST (use_p, imm_iter, scalar_dest)
        {

but doesn't do any dominance sanity checks that it found a valid PHI
(it simply assumes LC SSA is correct).


More information about the Gcc-bugs mailing list