On 10/14/2021 9:13 AM, Aldy Hernandez wrote:
The path solver runs in two modes: a quick mode which assumes any unknown SSA names are VARYING, and a fully resolving mode using the ranger. The backward threader currently uses the quick mode, because the fully resolving mode was not available initially. Since we now have the ability in the solver (used by the hybrid threader), I thought it'd be useful to have the knob for when the time comes. Note that enabling the fully resolving mode will require some experimenting, as enabling it would likely render other jump threading passes irrelevant (VRP threading comes to mind). There should be no functional changes as the resolver is set to false. OK pending tests? gcc/ChangeLog: * tree-ssa-threadbackward.c (class back_threader): Add m_resolve. (back_threader::back_threader): Same. (back_threader::resolve_phi): Try to solve without looking back if possible. (back_threader::find_paths_to_names): Same. (try_thread_blocks): Pass resolve argument to back threader. (pass_early_thread_jumps::execute): Same.
OK jeff