dumpfile.h (enum tree_dump_index): Rename TDI_generic to TDI_gimple.
authorJakub Jelinek <jakub@redhat.com>
Wed, 7 Jun 2017 08:57:11 +0000 (10:57 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 7 Jun 2017 08:57:11 +0000 (10:57 +0200)
* dumpfile.h (enum tree_dump_index): Rename TDI_generic to
TDI_gimple.
(class dump_manager): Add register_dumps method.
* dumpfile.c: Include langhooks.h.
(dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
(FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
(FIRST_ME_AUTO_NUMBERED_DUMP): Define.
(dump_manager::dump_register): Start with 512 entries instead of 32.
(dump_manager::register_dumps): New method.
* toplev.c (general_init): Instead of invoking register_dumps
langhook, invoke register_dumps method on the dump manager.
* gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
TDI_generic.

* gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
of TDI_generic.

From-SVN: r248947

gcc/ChangeLog
gcc/c/ChangeLog
gcc/c/gimple-parser.c
gcc/dumpfile.c
gcc/dumpfile.h
gcc/gimplify.c
gcc/toplev.c

index a5aaf47b5a4f2f6bfd825d82f87bc4b056af9ecd..f5fc52765d59eb4f07902047c31d69276dc2fac5 100644 (file)
@@ -1,3 +1,19 @@
+2017-06-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
+       TDI_gimple.
+       (class dump_manager): Add register_dumps method.
+       * dumpfile.c: Include langhooks.h.
+       (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
+       (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
+       (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
+       (dump_manager::dump_register): Start with 512 entries instead of 32.
+       (dump_manager::register_dumps): New method.
+       * toplev.c (general_init): Instead of invoking register_dumps
+       langhook, invoke register_dumps method on the dump manager.
+       * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
+       TDI_generic.
+
 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
 
        * doc/md.texi: Clarify the restrictions on a define_insn condition.
index 63cd3d4ab7927f96997666fa258f9da2631ab1af..0f23eb3773b6391c1e1b7d7e5230c8761f51305a 100644 (file)
@@ -1,3 +1,8 @@
+2017-06-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
+       of TDI_generic.
+
 2017-06-06  Marek Polacek  <polacek@redhat.com>
 
        PR c/79983
index fb9a5430f31a1100797ef3b9c0d1bb7f9d1b6048..4a55904662e96cc3bb703ac3a9d27c1c289fc5fd 100644 (file)
@@ -116,7 +116,7 @@ c_parser_parse_gimple_body (c_parser *parser)
      we have to go through lowering again.  */
   cfun->curr_properties = PROP_gimple_any;
 
-  dump_function (TDI_generic, current_function_decl);
+  dump_function (TDI_gimple, current_function_decl);
 }
 
 /* Parse a compound statement in gimple function body.
index b8bda3c918319c5449c068c4db82c270a6d1bddc..c746d0b24fffd57fcb005637e8bb350c27f2f5d3 100644 (file)
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "dumpfile.h"
 #include "context.h"
 #include "tree-cfg.h"
+#include "langhooks.h"
 
 /* If non-NULL, return one past-the-end of the matching SUBPART of
    the WHOLE string.  */
@@ -59,10 +60,11 @@ static struct dump_file_info dump_files[TDI_end] =
   DUMP_FILE_INFO (".cgraph", "ipa-cgraph", DK_ipa, 0),
   DUMP_FILE_INFO (".type-inheritance", "ipa-type-inheritance", DK_ipa, 0),
   DUMP_FILE_INFO (".ipa-clones", "ipa-clones", DK_ipa, 0),
-  DUMP_FILE_INFO (".original", "tree-original", DK_tree, 3),
-  DUMP_FILE_INFO (".gimple", "tree-gimple", DK_tree, 4),
-  DUMP_FILE_INFO (".nested", "tree-nested", DK_tree, 5),
-#define FIRST_AUTO_NUMBERED_DUMP 3
+  DUMP_FILE_INFO (".original", "tree-original", DK_tree, 0),
+  DUMP_FILE_INFO (".gimple", "tree-gimple", DK_tree, 0),
+  DUMP_FILE_INFO (".nested", "tree-nested", DK_tree, 0),
+#define FIRST_AUTO_NUMBERED_DUMP 1
+#define FIRST_ME_AUTO_NUMBERED_DUMP 3
 
   DUMP_FILE_INFO (NULL, "lang-all", DK_lang, 0),
   DUMP_FILE_INFO (NULL, "tree-all", DK_tree, 0),
@@ -179,7 +181,7 @@ dump_register (const char *suffix, const char *swtch, const char *glob,
   if (count >= m_extra_dump_files_alloced)
     {
       if (m_extra_dump_files_alloced == 0)
-       m_extra_dump_files_alloced = 32;
+       m_extra_dump_files_alloced = 512;
       else
        m_extra_dump_files_alloced *= 2;
       m_extra_dump_files = XRESIZEVEC (struct dump_file_info,
@@ -200,6 +202,25 @@ dump_register (const char *suffix, const char *swtch, const char *glob,
 }
 
 
+/* Allow languages and middle-end to register their dumps before the
+   optimization passes.  */
+
+void
+gcc::dump_manager::
+register_dumps ()
+{
+  lang_hooks.register_dumps (this);
+  /* If this assert fails, some FE registered more than
+     FIRST_ME_AUTO_NUMBERED_DUMP - FIRST_AUTO_NUMBERED_DUMP
+     dump files.  Bump FIRST_ME_AUTO_NUMBERED_DUMP accordingly.  */
+  gcc_assert (m_next_dump <= FIRST_ME_AUTO_NUMBERED_DUMP);
+  m_next_dump = FIRST_ME_AUTO_NUMBERED_DUMP;
+  dump_files[TDI_original].num = m_next_dump++;
+  dump_files[TDI_gimple].num = m_next_dump++;
+  dump_files[TDI_nested].num = m_next_dump++;
+}
+
+
 /* Return the dump_file_info for the given phase.  */
 
 struct dump_file_info *
index fda8d712c433d6d72da3c8ac227f8c43fb2031a5..4d9f6b3656a694124f2521ed46a42cef4fd7d44a 100644 (file)
@@ -31,7 +31,7 @@ enum tree_dump_index
   TDI_inheritance,             /* dump type inheritance graph.  */
   TDI_clones,                  /* dump IPA cloning decisions.  */
   TDI_original,                        /* dump each function before optimizing it */
-  TDI_generic,                 /* dump each function after genericizing it */
+  TDI_gimple,                  /* dump each function after gimplifying it */
   TDI_nested,                  /* dump each function after unnesting it */
 
   TDI_lang_all,                        /* enable all the language dumps.  */
@@ -212,6 +212,11 @@ public:
   dump_register (const char *suffix, const char *swtch, const char *glob,
                 dump_kind dkind, int optgroup_flags, bool take_ownership);
 
+  /* Allow languages and middle-end to register their dumps before the
+     optimization passes.  */
+  void
+  register_dumps ();
+
   /* Return the dump_file_info for the given phase.  */
   struct dump_file_info *
   get_dump_file_info (int phase) const;
index 2c7fc9fabd14cfbdfa0c8c8767fe64e05a8a2b4c..653057fd543cfe71306a95a61a88d2a81696fa0e 100644 (file)
@@ -12732,7 +12732,7 @@ gimplify_function_tree (tree fndecl)
 
   pop_cfun ();
 
-  dump_function (TDI_generic, fndecl);
+  dump_function (TDI_gimple, fndecl);
 }
 
 /* Return a dummy expression of type TYPE in order to keep going after an
index f8b5a4001c4c6f5b7b9441550985f2e3f0c62825..e6c69a4ba931bdbcf55bf0482f6474f6740bc683 100644 (file)
@@ -1168,9 +1168,9 @@ general_init (const char *argv0, bool init_signals)
      dump manager.  */
   g = new gcc::context ();
 
-  /* Allow languages to register their dumps before the optimization
-     passes.  */
-  lang_hooks.register_dumps (g->get_dumps ());
+  /* Allow languages and middle-end to register their dumps before the
+     optimization passes.  */
+  g->get_dumps ()->register_dumps ();
 
   /* Create the passes.  */
   g->set_passes (new gcc::pass_manager (g));