https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109087
--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I didn't mean for GCC 13, we need to fix the actual backend bug regardless and so a DSE improvement can't be considered a fix... ;) Just the DSE thing happens very often with -ftrivial-auto-var-init=. I wonder if even after your improvement we don't keep .DEFERRED_INIT for unused vars for the case when the DSE walk will run into the vdef/vuse limits (I assume it doesn't do unbounded walk). Perhaps some special handling of .DEFERRED_INITs for vars which have solely those statements and clobbers and nothing else?