Patchwork Fix dumps for IPA passes

login
register
mail settings
Submitter Sharad Singhai
Date Oct. 20, 2012, 1:24 a.m.
Message ID <CAKxPW65rafENU=jzwhubBHFkLyMsZzXS_1Su18u7dFg0jwP1ew@mail.gmail.com>
Download mbox | patch
Permalink /patch/192884/
State New
Headers show

Comments

Sharad Singhai - Oct. 20, 2012, 1:24 a.m.
As suggested in http://gcc.gnu.org/ml/gcc/2012-10/msg00285.html, I
have updated the attached patch to rename 'dump_enabled_phase' to
'dump_enabled_phase_p'. The 'dump_enabled_p ()' doesn't take any
argument and can be used as a predicate for the dump calls.

Once this patch gets in, the plan is to update the existing calls (in
vectorizer passes) of the form
          if (dump_kind_p (flags))
              dump_printf(flags, ...)

to

          if (dump_enabled_p ())
              dump_printf(flags, ...)

Bootstrapped and tested on x86_64 and didn't observe any new test
failures. Okay for trunk?

Thanks,
Sharad

2012-10-19  Sharad Singhai  <singhai@google.com>

* dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update
        all callers.
(dump_enabled_p): A new function to check if any of the dump files
is available.
(dump_kind_p): Remove check for current_function_decl. Add check for
dumpfile and alt_dump_file.
* dumpfile.h: Add declaration of dump_enabled_p.
Richard Guenther - Oct. 22, 2012, 8 a.m.
On Sat, Oct 20, 2012 at 3:24 AM, Sharad Singhai <singhai@google.com> wrote:
> As suggested in http://gcc.gnu.org/ml/gcc/2012-10/msg00285.html, I
> have updated the attached patch to rename 'dump_enabled_phase' to
> 'dump_enabled_phase_p'. The 'dump_enabled_p ()' doesn't take any
> argument and can be used as a predicate for the dump calls.
>
> Once this patch gets in, the plan is to update the existing calls (in
> vectorizer passes) of the form
>           if (dump_kind_p (flags))
>               dump_printf(flags, ...)
>
> to
>
>           if (dump_enabled_p ())
>               dump_printf(flags, ...)
>
> Bootstrapped and tested on x86_64 and didn't observe any new test
> failures. Okay for trunk?

Ok.

Thanks,
Richard.

> Thanks,
> Sharad
>
> 2012-10-19  Sharad Singhai  <singhai@google.com>
>
> * dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update
>         all callers.
> (dump_enabled_p): A new function to check if any of the dump files
> is available.
> (dump_kind_p): Remove check for current_function_decl. Add check for
> dumpfile and alt_dump_file.
> * dumpfile.h: Add declaration of dump_enabled_p.
>
> Index: dumpfile.c
> ===================================================================
> --- dumpfile.c (revision 192623)
> +++ dumpfile.c (working copy)
> @@ -35,7 +35,7 @@ static int alt_flags;                /* current op
>  static FILE *alt_dump_file = NULL;
>
>  static void dump_loc (int, FILE *, source_location);
> -static int dump_enabled_p (int);
> +static int dump_phase_enabled_p (int);
>  static FILE *dump_open_alternate_stream (struct dump_file_info *);
>
>  /* Table of tree dump switches. This must be consistent with the
> @@ -380,7 +380,7 @@ dump_start (int phase, int *flag_ptr)
>    char *name;
>    struct dump_file_info *dfi;
>    FILE *stream;
> -  if (phase == TDI_none || !dump_enabled_p (phase))
> +  if (phase == TDI_none || !dump_phase_enabled_p (phase))
>      return 0;
>
>    dfi = get_dump_file_info (phase);
> @@ -461,7 +461,7 @@ dump_begin (int phase, int *flag_ptr)
>    struct dump_file_info *dfi;
>    FILE *stream;
>
> -  if (phase == TDI_none || !dump_enabled_p (phase))
> +  if (phase == TDI_none || !dump_phase_enabled_p (phase))
>      return NULL;
>
>    name = get_dump_file_name (phase);
> @@ -493,8 +493,8 @@ dump_begin (int phase, int *flag_ptr)
>     If PHASE is TDI_tree_all, return nonzero if any dump is enabled for
>     any phase.  */
>
> -int
> -dump_enabled_p (int phase)
> +static int
> +dump_phase_enabled_p (int phase)
>  {
>    if (phase == TDI_tree_all)
>      {
> @@ -514,6 +514,14 @@ dump_begin (int phase, int *flag_ptr)
>      }
>  }
>
> +/* Return true if any of the dumps are enabled, false otherwise. */
> +
> +inline bool
> +dump_enabled_p (void)
> +{
> +  return (dump_file || alt_dump_file);
> +}
> +
>  /* Returns nonzero if tree dump PHASE has been initialized.  */
>
>  int
> @@ -834,9 +842,8 @@ opt_info_switch_p (const char *arg)
>  bool
>  dump_kind_p (int msg_type)
>  {
> -  if (!current_function_decl)
> -    return 0;
> -  return ((msg_type & pflags) || (msg_type & alt_flags));
> +  return (dump_file && (msg_type & pflags))
> +    || (alt_dump_file && (msg_type & alt_flags));
>  }
>
>  /* Print basic block on the dump streams.  */
> Index: dumpfile.h
> ===================================================================
> --- dumpfile.h (revision 192623)
> +++ dumpfile.h (working copy)
> @@ -121,6 +121,7 @@ extern int dump_switch_p (const char *);
>  extern int opt_info_switch_p (const char *);
>  extern const char *dump_flag_name (int);
>  extern bool dump_kind_p (int);
> +extern inline bool dump_enabled_p (void);
>  extern void dump_printf (int, const char *, ...) ATTRIBUTE_PRINTF_2;
>  extern void dump_printf_loc (int, source_location,
>                               const char *, ...) ATTRIBUTE_PRINTF_3;

Patch

Index: dumpfile.c
===================================================================
--- dumpfile.c (revision 192623)
+++ dumpfile.c (working copy)
@@ -35,7 +35,7 @@  static int alt_flags;                /* current op
 static FILE *alt_dump_file = NULL;

 static void dump_loc (int, FILE *, source_location);
-static int dump_enabled_p (int);
+static int dump_phase_enabled_p (int);
 static FILE *dump_open_alternate_stream (struct dump_file_info *);

 /* Table of tree dump switches. This must be consistent with the
@@ -380,7 +380,7 @@  dump_start (int phase, int *flag_ptr)
   char *name;
   struct dump_file_info *dfi;
   FILE *stream;
-  if (phase == TDI_none || !dump_enabled_p (phase))
+  if (phase == TDI_none || !dump_phase_enabled_p (phase))
     return 0;

   dfi = get_dump_file_info (phase);
@@ -461,7 +461,7 @@  dump_begin (int phase, int *flag_ptr)
   struct dump_file_info *dfi;
   FILE *stream;

-  if (phase == TDI_none || !dump_enabled_p (phase))
+  if (phase == TDI_none || !dump_phase_enabled_p (phase))
     return NULL;

   name = get_dump_file_name (phase);
@@ -493,8 +493,8 @@  dump_begin (int phase, int *flag_ptr)
    If PHASE is TDI_tree_all, return nonzero if any dump is enabled for
    any phase.  */

-int
-dump_enabled_p (int phase)
+static int
+dump_phase_enabled_p (int phase)
 {
   if (phase == TDI_tree_all)
     {
@@ -514,6 +514,14 @@  dump_begin (int phase, int *flag_ptr)
     }
 }

+/* Return true if any of the dumps are enabled, false otherwise. */
+
+inline bool
+dump_enabled_p (void)
+{
+  return (dump_file || alt_dump_file);
+}
+
 /* Returns nonzero if tree dump PHASE has been initialized.  */

 int
@@ -834,9 +842,8 @@  opt_info_switch_p (const char *arg)
 bool
 dump_kind_p (int msg_type)
 {
-  if (!current_function_decl)
-    return 0;
-  return ((msg_type & pflags) || (msg_type & alt_flags));
+  return (dump_file && (msg_type & pflags))
+    || (alt_dump_file && (msg_type & alt_flags));
 }

 /* Print basic block on the dump streams.  */
Index: dumpfile.h
===================================================================
--- dumpfile.h (revision 192623)
+++ dumpfile.h (working copy)
@@ -121,6 +121,7 @@  extern int dump_switch_p (const char *);
 extern int opt_info_switch_p (const char *);
 extern const char *dump_flag_name (int);
 extern bool dump_kind_p (int);
+extern inline bool dump_enabled_p (void);
 extern void dump_printf (int, const char *, ...) ATTRIBUTE_PRINTF_2;
 extern void dump_printf_loc (int, source_location,
                              const char *, ...) ATTRIBUTE_PRINTF_3;