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? 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(-)
diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def index dd874c519bb..7ab32816a05 100644 --- a/gcc/dbgcnt.def +++ b/gcc/dbgcnt.def @@ -195,3 +195,5 @@ DEBUG_COUNTER (tree_sra) DEBUG_COUNTER (vect_loop) DEBUG_COUNTER (vect_slp) DEBUG_COUNTER (dom_unreachable_edges) +DEBUG_COUNTER (gimple_match) +DEBUG_COUNTER (generic_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..8ec73f82482 100644 --- a/gcc/genmatch.c +++ b/gcc/genmatch.c @@ -3310,6 +3310,11 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) } } + if (gimple) + fprintf_indent (f, indent, "if (__builtin_expect (!dbg_cnt (gimple_match), 0)) return false;\n"); + else + fprintf_indent (f, indent, "if (__builtin_expect (!dbg_cnt (generic_match), 0)) return NULL_TREE;\n"); + 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