https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82090
--- Comment #7 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- (In reply to Jeffrey A. Law from comment #6) > The other is to introduce the solver into the predicate analysis pass which > starts to touch on other ideas I've had. Namely that thread discovery and > predicate analysis are closely related. ie, we could be using predicate > analysis to discover more threading opportunities and we could be using the > path solver to prune out infeasible paths for the uninit (and other) passes > by integrating path solving into predicate analysis. What you've done is > the first step in this direction. It looks like compute_control_dep_chain builds a vectors of edges indicating paths from DEF to USE. We may be able to feed a variant of this to the path solver to determine if the path is reachable. That is, without having to search for the path :). Hmm, there may be something here.