PR jit/64166: Add methods to gcc::dump_manager needed by JIT testing
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 9 Dec 2014 15:25:11 +0000 (15:25 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 9 Dec 2014 15:25:11 +0000 (15:25 +0000)
gcc/ChangeLog:
PR jit/64166
* dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
New function.
(gcc::dump_manager::get_dump_file_name): Split out bulk of
implementation into a new overloaded variant taking a
dump_file_info *.
* dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
New function.
(gcc::dump_manager::get_dump_file_name): New overloaded variant of
this function, taking a dump_file_info *.

From-SVN: r218520

gcc/ChangeLog
gcc/dumpfile.c
gcc/dumpfile.h

index c38a07216297e6dcf081508f594a52e8a6d408f4..eb1878f0f83b969a5f9b0d39caaed3414f57d022 100644 (file)
@@ -1,3 +1,16 @@
+2014-12-09  David Malcolm  <dmalcolm@redhat.com>
+
+       PR jit/64166
+       * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
+       New function.
+       (gcc::dump_manager::get_dump_file_name): Split out bulk of
+       implementation into a new overloaded variant taking a
+       dump_file_info *.
+       * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
+       New function.
+       (gcc::dump_manager::get_dump_file_name): New overloaded variant of
+       this function, taking a dump_file_info *.
+
 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
 
        PR bootstrap/64213
index c2cd89b59aaf6fdaddad5db7fba036add1af0e02..eb178feae07308ad005f4485fe8aa9dbea19e2cd 100644 (file)
@@ -217,21 +217,54 @@ get_dump_file_info (int phase) const
     return m_extra_dump_files + (phase - TDI_end);
 }
 
+/* Locate the dump_file_info with swtch equal to SWTCH,
+   or return NULL if no such dump_file_info exists.  */
+
+struct dump_file_info *
+gcc::dump_manager::
+get_dump_file_info_by_switch (const char *swtch) const
+{
+  for (unsigned i = 0; i < m_extra_dump_files_in_use; i++)
+    if (0 == strcmp (m_extra_dump_files[i].swtch, swtch))
+      return &m_extra_dump_files[i];
+
+  /* Not found.  */
+  return NULL;
+}
+
 
 /* Return the name of the dump file for the given phase.
+   The caller is responsible for calling free on the returned
+   buffer.
    If the dump is not enabled, returns NULL.  */
 
 char *
 gcc::dump_manager::
 get_dump_file_name (int phase) const
 {
-  char dump_id[10];
   struct dump_file_info *dfi;
 
   if (phase == TDI_none)
     return NULL;
 
   dfi = get_dump_file_info (phase);
+
+  return get_dump_file_name (dfi);
+}
+
+/* Return the name of the dump file for the given dump_file_info.
+   The caller is responsible for calling free on the returned
+   buffer.
+   If the dump is not enabled, returns NULL.  */
+
+char *
+gcc::dump_manager::
+get_dump_file_name (struct dump_file_info *dfi) const
+{
+  char dump_id[10];
+
+  gcc_assert (dfi);
+
   if (dfi->pstate == 0)
     return NULL;
 
index d650174c431184cfd70b2ce58fc0af74fced03f6..93aea67f7c201d83cb111ec5541343dc2a2da457 100644 (file)
@@ -182,11 +182,17 @@ public:
   struct dump_file_info *
   get_dump_file_info (int phase) const;
 
+  struct dump_file_info *
+  get_dump_file_info_by_switch (const char *swtch) const;
+
   /* Return the name of the dump file for the given phase.
      If the dump is not enabled, returns NULL.  */
   char *
   get_dump_file_name (int phase) const;
 
+  char *
+  get_dump_file_name (struct dump_file_info *dfi) const;
+
   int
   dump_switch_p (const char *arg);