https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102844
--- Comment #17 from rguenther at suse dot de <rguenther at suse dot de> --- On Wed, 20 Oct 2021, aldyh at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102844 > > --- Comment #16 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- > (In reply to Richard Biener from comment #13) > > Aldyh might also have stumbled over code avoiding to thread across a SSA > > definition. > > > > Ah - I guess the block is recorded as "forwarder" (block with just a > > condition > > we are able to thread through) but it becomes a non-"forwarder" because > > later > > a SSA definition is inserted but the actual threading code will not copy > > those stmts (or verify they impose no problem)? > > I haven't run into this in the forward threader, but I have run into something > similar in the new path solver (which I fixed). But that's unlikely to help > you here. > > Silly question, why is the SSA form invalid on entry to VRP2? That's just > asking for trouble. Is this related to how asserts work? Well, DOM threading creates invalid SSA (definition not dominating use). Doesn't have to do anything with VRP or asserts.