On 7/3/19 1:48 PM, Richard Biener wrote: > On Wed, Jul 3, 2019 at 12:39 PM Martin Liška <mli...@suse.cz> wrote: >> >> Hi. >> >> The patch is about dbgcnt support for match in GIMPLE and GENERIC. >> It's handy for isolation of a problem. >> >> Ready to be installed after it survives tests? > > Hmm, I think we only want this on (simplify...), not (match...), no? > Thus simply move the code into the preceeding if() body.
I've done that with s->kind == simplify::SIMPLIFY. Would it be fine? > > I'd also merge gimple and generic_match counters since passes > happen to use both. Works for me. Martin > > OK with that changes. > Richard. > >> Thanks, >> Martin >> >> gcc/ChangeLog: >> >> 2019-07-03 Martin Liska <mli...@suse.cz> >> >> * dbgcnt.def (DEBUG_COUNTER): Add gimple_match and >> generic_match. >> * genmatch.c (dt_simplify::gen_1): Generate dbgcnt >> condition. >> * generic-match-head.c: Include dbgcnt.h. >> * gimple-match-head.c: Likewise. >> --- >> gcc/dbgcnt.def | 2 ++ >> gcc/generic-match-head.c | 2 +- >> gcc/genmatch.c | 5 +++++ >> gcc/gimple-match-head.c | 2 +- >> 4 files changed, 9 insertions(+), 2 deletions(-) >> >>
>From 035a918ba10ad002ef1707e308143040311f707b Mon Sep 17 00:00:00 2001 From: Martin Liska <mli...@suse.cz> Date: Wed, 3 Jul 2019 12:37:06 +0200 Subject: [PATCH] Add dbgcnt for gimple_match and generic_match. gcc/ChangeLog: 2019-07-03 Martin Liska <mli...@suse.cz> * dbgcnt.def (DEBUG_COUNTER): Add match debug counter. * genmatch.c (dt_simplify::gen_1): Generate dbgcnt condition. * generic-match-head.c: Include dbgcnt.h. * gimple-match-head.c: Likewise. --- gcc/dbgcnt.def | 1 + gcc/generic-match-head.c | 2 +- gcc/genmatch.c | 4 ++++ gcc/gimple-match-head.c | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def index dd874c519bb..230072f7bb5 100644 --- a/gcc/dbgcnt.def +++ b/gcc/dbgcnt.def @@ -195,3 +195,4 @@ DEBUG_COUNTER (tree_sra) DEBUG_COUNTER (vect_loop) DEBUG_COUNTER (vect_slp) DEBUG_COUNTER (dom_unreachable_edges) +DEBUG_COUNTER (match) diff --git a/gcc/generic-match-head.c b/gcc/generic-match-head.c index 76fc9993481..b54e03552ba 100644 --- a/gcc/generic-match-head.c +++ b/gcc/generic-match-head.c @@ -35,7 +35,7 @@ along with GCC; see the file COPYING3. If not see #include "case-cfn-macros.h" #include "gimplify.h" #include "optabs-tree.h" - +#include "dbgcnt.h" /* Routine to determine if the types T1 and T2 are effectively the same for GENERIC. If T1 or T2 is not a type, the test diff --git a/gcc/genmatch.c b/gcc/genmatch.c index 7b9b09c7d8b..109bd9e6f2d 100644 --- a/gcc/genmatch.c +++ b/gcc/genmatch.c @@ -3310,6 +3310,10 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) } } + if (s->kind == simplify::SIMPLIFY) + fprintf_indent (f, indent, "if (__builtin_expect (!dbg_cnt (match), 0)) return %s;\n", + gimple ? "false" : "NULL_TREE"); + fprintf_indent (f, indent, "if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) " "fprintf (dump_file, \"%s ", s->kind == simplify::SIMPLIFY diff --git a/gcc/gimple-match-head.c b/gcc/gimple-match-head.c index f83f2256178..df9f0c50590 100644 --- a/gcc/gimple-match-head.c +++ b/gcc/gimple-match-head.c @@ -42,7 +42,7 @@ along with GCC; see the file COPYING3. If not see #include "gimplify.h" #include "optabs-tree.h" #include "tree-eh.h" - +#include "dbgcnt.h" /* Forward declarations of the private auto-generated matchers. They expect valueized operands in canonical order and do not -- 2.22.0