https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104475
Aldy Hernandez <aldyh at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |law at gcc dot gnu.org --- Comment #8 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- (In reply to Richard Biener from comment #7) > I think we shouldn't do anything on the optimization side - sure, the path > isolation in the end turns out not profitable, but it's likely hard to decide > that. > > Maybe we can somehow avoid threading for a ptr == 0 condition? Why do we > make > the threading profitable? The threaders are mostly blind wrt threading a path. If they see it, they will thread it. There are some minor things we disallow (see calls to cancel_thread throughout) and the big hammer we introduced in this release with cancel_invalid_paths() where we disallow problematic loop transformations. But mostly we thread everything that's possible. Disallowing ptr == 0 as well as highly unlikely paths should be trivial. We could add a simple check in cancel_invalid_paths(). Though, I assume that would affect warning code all over, since we're reducing the amount of threadable paths on which they depend?