https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104528
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- At the start of IVOPTs we have (gdb) p debug_tree (cfun->x_current_loops->larray->m_vecdata[4]->nb_iterations) <minus_expr 0x7ffff6348f28 type <integer_type 0x7ffff670ce70 public unsigned SI size <integer_cst 0x7ffff6517e40 constant 32> unit-size <integer_cst 0x7ffff6517e58 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff670ce70 precision:32 min <integer_cst 0x7ffff6321078 0> max <integer_cst 0x7ffff6321060 4294967295>> arg:0 <ssa_name 0x7ffff631e240 type <error_mark 0x7ffff6517be8> nothrow def_stmt version:36 in-free-list> arg:1 <nop_expr 0x7ffff6349400 type <integer_type 0x7ffff670ce70> arg:0 <ssa_name 0x7ffff63345a0 type <integer_type 0x7ffff652f5e8 integer(kind=4)> visited def_stmt pretmp_90 = ii; version:90>>> $12 = void so that mentions a released SSA name. It's released during DSE which fails to reset niter info since we now prune dead SSA names there.