From: David Malcolm <dmalcolm@redhat.com>
To: "gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>
Subject: [PATCH (for next stage 1)] Add return type to gimple function dumps
Date: Mon, 10 Mar 2014 20:13:00 -0000 [thread overview]
Message-ID: <1394479369.26367.17.camel@surprise> (raw)
[-- Attachment #1: Type: text/plain, Size: 934 bytes --]
Gimple function dumps contain the types of parameters, but not of the
return type.
The attached patch fixes this omission; here's an example of the
before/after diff:
$ diff -up /tmp/pr23401.c.004t.gimple.old /tmp/pr23401.c.004t.gimple.new
--- /tmp/pr23401.c.004t.gimple.old 2014-03-10 13:40:08.972063541 -0400
+++ /tmp/pr23401.c.004t.gimple.new 2014-03-10 13:39:49.346515464 -0400
@@ -1,3 +1,4 @@
+int
ffff (int i)
{
int D.1731;
Successfully bootstrapped and regrtested on x86_64 Linux (Fedora 20).
A couple of test cases needed tweaking, since they were counting the
number of occurrences of "int" in the gimple dump, which thus changed
for functions returning int (like the one above).
OK for next stage 1?
[motivation: am generating code in my JIT from other program's
representations, and have been debugging type mismatches in function
calls; the precise return types would otherwise have been non-obvious]
[-- Attachment #2: add-return-types-to-gimple-dumps.patch --]
[-- Type: text/x-patch, Size: 2338 bytes --]
commit cfef58ecb0d81e6b9c691217ad9efdce376fc0a5
Author: David Malcolm <dmalcolm@redhat.com>
Date: Mon Mar 10 13:52:44 2014 -0400
Dump the return type of functions in gimple dumps
gcc/
* tree-cfg.c (dump_function_to_file): Dump the return type of
functions, in a line to itself before the function body, mimicking
the layout of a C function.
gcc/testsuite/
* gcc.dg/tree-ssa/pr23401.c: Update the expected number of
occurrences of "int" in the gimple dump to reflect that the return
types of functions now show up in such dumps.
* gcc.dg/tree-ssa/pr27810.c: Likwise.
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr23401.c b/gcc/testsuite/gcc.dg/tree-ssa/pr23401.c
index 1d30ac7..3940692 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr23401.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr23401.c
@@ -19,6 +19,6 @@ int ffff(int i)
/* We should not use extra temporaries apart from for i1 + i2. */
-/* { dg-final { scan-tree-dump-times "int" 5 "gimple" } } */
+/* { dg-final { scan-tree-dump-times "int" 6 "gimple" } } */
/* { dg-final { scan-tree-dump-times "int D\\\." 1 "gimple" } } */
/* { dg-final { cleanup-tree-dump "gimple" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr27810.c b/gcc/testsuite/gcc.dg/tree-ssa/pr27810.c
index c7da3bd..6d0904b 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr27810.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr27810.c
@@ -13,6 +13,6 @@ int qqq (int a)
/* We should not use an extra temporary for the result of the
function call. */
-/* { dg-final { scan-tree-dump-times "int" 3 "gimple" } } */
+/* { dg-final { scan-tree-dump-times "int" 4 "gimple" } } */
/* { dg-final { scan-tree-dump-times "int D\\\." 1 "gimple" } } */
/* { dg-final { cleanup-tree-dump "gimple" } } */
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 325285c..9335f4c 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -7075,6 +7075,11 @@ dump_function_to_file (tree fndecl, FILE *file, int flags)
struct function *fun = DECL_STRUCT_FUNCTION (fndecl);
current_function_decl = fndecl;
+
+ /* Print the return type of the function: */
+ print_generic_expr (file, TREE_TYPE (TREE_TYPE (fun->decl)), dump_flags);
+ fprintf (file, "\n");
+
fprintf (file, "%s %s(", function_name (fun), tmclone ? "[tm-clone] " : "");
arg = DECL_ARGUMENTS (fndecl);
next reply other threads:[~2014-03-10 19:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-10 20:13 David Malcolm [this message]
2014-03-11 11:25 ` Richard Biener
2014-04-24 21:54 ` Jeff Law
2014-04-29 1:23 ` David Malcolm
2014-04-29 9:30 ` Richard Biener
2014-04-29 15:28 ` David Malcolm
2014-05-16 12:59 ` Richard Biener
2014-05-16 16:19 ` David Malcolm
2014-05-16 21:40 ` David Malcolm
2014-05-19 9:04 ` 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=1394479369.26367.17.camel@surprise \
--to=dmalcolm@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
/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).