public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Martin Liška" <mliska@suse.cz>
To: Richard Biener <richard.guenther@gmail.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH] Add dbgcnt for gimple_match and generic_match.
Date: Wed, 03 Jul 2019 12:39:00 -0000	[thread overview]
Message-ID: <67f5f2f0-8574-2c39-a720-7ef49e576ef2@suse.cz> (raw)
In-Reply-To: <CAFiYyc3Z0RwwuxP+iSBsWgbt-pLDjecnqeDkz0YbwCq7-cTrhA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1228 bytes --]

On 7/3/19 1:48 PM, Richard Biener wrote:
> On Wed, Jul 3, 2019 at 12:39 PM Martin Liška <mliska@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  <mliska@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(-)
>>
>>


[-- Attachment #2: 0001-Add-dbgcnt-for-gimple_match-and-generic_match.patch --]
[-- Type: text/x-patch, Size: 2445 bytes --]

From 035a918ba10ad002ef1707e308143040311f707b Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@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  <mliska@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


  reply	other threads:[~2019-07-03 12:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-03 10:39 Martin Liška
2019-07-03 11:49 ` Richard Biener
2019-07-03 12:39   ` Martin Liška [this message]
2019-07-03 12:41     ` Richard Biener

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=67f5f2f0-8574-2c39-a720-7ef49e576ef2@suse.cz \
    --to=mliska@suse.cz \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=richard.guenther@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).