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

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Tamar Christina from comment #2)
> (In reply to Richard Biener from comment #1)
> > (gdb) p debug_gimple_stmt (at_stmt)
> > _42 = _38;
> > (gdb) p debug_tree (var)
> >  <ssa_name 0x7ffff757f2c0
> >     type <integer_type 0x7ffff761c000 sizetype public unsigned DI
> >         size <integer_cst 0x7ffff761e000 constant 64>
> >         unit-size <integer_cst 0x7ffff761e018 constant 8>
> >         align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
> > 0x7ffff761c000 precision:64 min <integer_cst 0x7ffff761e030 0> max
> > <integer_cst 0x7ffff7603700 18446744073709551615>>
> >    
> >     def_stmt GIMPLE_NOP
> >     version:38>
> > 
> > and we hit this from vect_do_peeling, this is likely the "later to be
> > initialized" niter thing we've introduced lately?
> > 
> 
> No, it's been there since GCC 16 for the early break IV itself and for ages
> for the masked control IV (and this was modelled after that).
> 
> It's because we wanted to re-use vect_update_ivs_after_vectorizer.

Yes, that.

> > 3955          LOOP_VINFO_NITERSM1 (epilogue_vinfo)
> > 3956            = fold_build2 (MINUS_EXPR, TREE_TYPE (epilogue_niters),
> > 3957                           epilogue_niters,
> > 3958                           build_one_cst (TREE_TYPE (epilogue_niters)));
> > 
> > I suspect we need to resort to a more "temporarily VARYING" way here :/
> > ISTR suggesting some internal function, like insert
> > 
> >   _38 = .VARYING ();
> > 
> > it would be a NOVOPS (but not CONST/PURE) one maybe.
> 
> Ok, so the suggestion is to insert a dummy value until we replace it later
> on just to make df analysis ignore it.
> Would using a ssa_default_def work here too? or do you prefer the IFN?

A default def would be semantically uninitialized, so also wrong (it would
solve this ICE of course).  There's no "has unknown value" but using
a volatile load, but I think a new IFN would be better here.

Reply via email to