https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126329
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
Last reconfirmed| |2026-07-20
CC| |amacleod at redhat dot com
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
(gdb) p debug_tree (chrec)
<ssa_name 0x7ffff7424948 type <error_mark 0x7ffff7602f78>
nothrow
def_stmt
version:15 in-free-list>
$2 = void
confirmed. This is from substitute-and-fold where the SSA name is released
from
#0 release_ssa_name_fn (fn=0x7ffff7fb6270, var=<ssa_name 0x7ffff7424948 15>)
at ../../src/gcc/gcc/tree-ssanames.cc:667
#1 0x0000000001595b80 in release_ssa_name (name=<ssa_name 0x7ffff7424948 15>)
at ../../src/gcc/gcc/tree-ssanames.h:126
#2 0x0000000001e3d9bd in release_defs (stmt=<gimple_assign 0x7ffff7424160>)
at ../../src/gcc/gcc/tree-ssanames.cc:966
#3 0x0000000001ca6d66 in simple_dce_from_worklist (worklist=0x7fffffffc550,
need_eh_cleanup=0x0) at ../../src/gcc/gcc/tree-ssa-dce.cc:2273
#4 0x0000000001f3aa59 in remove_unreachable::handle_early (
this=0x7fffffffd090, s=<gimple_cond 0x7ffff74242c0>,
e=<edge 0x7ffff7426968 (6 -> 8)>) at ../../src/gcc/gcc/tree-vrp.cc:251
#5 0x0000000001f3a485 in remove_unreachable::maybe_register (
this=0x7fffffffd090, s=<gimple_cond 0x7ffff74242c0>)
at ../../src/gcc/gcc/tree-vrp.cc:132
#6 0x0000000001f3eea0 in rvrp_folder::pre_fold_stmt (this=0x7fffffffd060,
stmt=<gimple_cond 0x7ffff74242c0>) at ../../src/gcc/gcc/tree-vrp.cc:1060
#7 0x0000000001d84c03 in substitute_and_fold_dom_walker::before_dom_children (
this=0x7fffffffca50, bb=<basic_block 0x7ffff7401b40 (6)>)
at ../../src/gcc/gcc/tree-ssa-propagate.cc:806
during substitute-and-fold we are delaying removing of stmts exactly because
that disrupts things (at least we did, in the past ...). Calling
simple_dce_from_worklist from folding looks bogus, this should be done
after the fact.
But substitute-and-fold has become an entangled mess, leaving to VRP folks.
It looks like there's a walker.dceworklist bitmap for this.