https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79411
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 Component|c |tree-optimization --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Agreed - let's punt on abnormals, but I guess you have to prevent looking into _2 = _3 + a_4(AB); when linearizing. That is, abnormals shouldn't appear in the ops vector (maybe we can add an assert in rewrite-expr-tree for this). Of course technically we can re-associate so that two abnormals cancel (optimize a_4(AB) - a_4(AB) to zero) but I don't see an easy way to "recover" when an abnormal survives until rewrite-expr-tree. The real constraint is of course that we may not enlarge the lifetime of an abnormal.