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
next prev parent 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).