[PATCH] Add debug counters to back threader.
Richard Biener
richard.guenther@gmail.com
Tue Nov 2 13:27:28 GMT 2021
On Mon, Nov 1, 2021 at 2:03 PM Jeff Law via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
>
>
> On 11/1/2021 3:54 AM, Aldy Hernandez wrote:
> > Chasing down stage3 miscomparisons is never fun, and having no way to
> > distinguish between jump threads registered by a particular
> > pass, is even harder. This patch adds debug counters for the individual
> > back threading passes. I've left the ethread pass alone, as that one is
> > usually benign, but we could easily add it if needed.
> >
> > The fact that we can only pass one boolean argument to the passes
> > infrastructure has us do all sorts of gymnastics to differentiate
> > between the various back threading passes.
> >
> > Tested on x86-64 Linux.
> >
> > OK?
> >
> > gcc/ChangeLog:
> >
> > * dbgcnt.def: Add debug counter for back_thread[12] and
> > back_threadfull[12].
> > * passes.def: Pass "first" argument to each back threading pass.
> > * tree-ssa-threadbackward.c (back_threader::back_threader): Add
> > first argument.
> > (back_threader::debug_counter): New.
> > (back_threader::maybe_register_path): Call debug_counter.
> OK
But it's ugly. Very. Why isn't a single debug-counter good enough?
You should be able to reduce to a single threading pass via
-fdisable-tree-xyz and then bisect with the debug counter.
Alternatively at least store the debug counter to query somewhere
so you can have the "hot" path query a single one. So instead of
if (!dbg_cnt (back_thread1))
do
if (!dbg_cnt (curr_cnt))
and compute curr_cnt somewhere.
Richard.
> jeff
>
More information about the Gcc-patches
mailing list