Patchwork Fix powerpc breakage, was: Add option for dumping to stderr (issue6190057)

login
register
mail settings
Submitter Michael Meissner
Date Oct. 1, 2012, 9:37 p.m.
Message ID <20121001213717.GA20106@ibm-tiger.the-meissners.org>
Download mbox | patch
Permalink /patch/188348/
State New
Headers show

Comments

Michael Meissner - Oct. 1, 2012, 9:37 p.m.
I tracked down some of the other code that previously used REPORT_DETAILS, and
MSG_NOTE is the new way to do the same thing.  This bootstraps and no
unexpected errors occur during make check.  Is it ok to install?

2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
	(rs6000_density_test): Rework to accomidate 09-30 change by Sharad
	Singhai.

	* config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
Gabriel Dos Reis - Oct. 1, 2012, 9:42 p.m.
On Mon, Oct 1, 2012 at 4:37 PM, Michael Meissner
<meissner@linux.vnet.ibm.com> wrote:
> I tracked down some of the other code that previously used REPORT_DETAILS, and
> MSG_NOTE is the new way to do the same thing.  This bootstraps and no
> unexpected errors occur during make check.  Is it ok to install?

yes -- qualifies as "obvious".  Thanks!


>
> 2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
>
>         * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
>         (rs6000_density_test): Rework to accomidate 09-30 change by Sharad
>         Singhai.
>
>         * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
>
> Index: gcc/config/rs6000/rs6000.c
> ===================================================================
> --- gcc/config/rs6000/rs6000.c  (revision 191932)
> +++ gcc/config/rs6000/rs6000.c  (working copy)
> @@ -58,6 +58,7 @@
>  #include "tm-constrs.h"
>  #include "opts.h"
>  #include "tree-vectorizer.h"
> +#include "dumpfile.h"
>  #if TARGET_XCOFF
>  #include "xcoffout.h"  /* get declarations of xcoff_*_section_name */
>  #endif
> @@ -3518,11 +3519,11 @@ rs6000_density_test (rs6000_cost_data *d
>        && vec_cost + not_vec_cost > DENSITY_SIZE_THRESHOLD)
>      {
>        data->cost[vect_body] = vec_cost * (100 + DENSITY_PENALTY) / 100;
> -      if (vect_print_dump_info (REPORT_DETAILS))
> -       fprintf (vect_dump,
> -                "density %d%%, cost %d exceeds threshold, penalizing "
> -                "loop body cost by %d%%", density_pct,
> -                vec_cost + not_vec_cost, DENSITY_PENALTY);
> +      if (dump_kind_p (MSG_NOTE))
> +       dump_printf_loc (MSG_NOTE, vect_location,
> +                        "density %d%%, cost %d exceeds threshold, penalizing "
> +                        "loop body cost by %d%%", density_pct,
> +                        vec_cost + not_vec_cost, DENSITY_PENALTY);
>      }
>  }
>
> Index: gcc/config/rs6000/t-rs6000
> ===================================================================
> --- gcc/config/rs6000/t-rs6000  (revision 191932)
> +++ gcc/config/rs6000/t-rs6000  (working copy)
> @@ -26,7 +26,7 @@ rs6000.o: $(CONFIG_H) $(SYSTEM_H) corety
>    $(OBSTACK_H) $(TREE_H) $(EXPR_H) $(OPTABS_H) except.h function.h \
>    output.h dbxout.h $(BASIC_BLOCK_H) toplev.h $(GGC_H) $(HASHTAB_H) \
>    $(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h gt-rs6000.h \
> -  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H)
> +  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H) dumpfile.h
>
>  rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
>      $(srcdir)/config/rs6000/rs6000-protos.h \
>
> --
> Michael Meissner, IBM
> 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA
> meissner@linux.vnet.ibm.com     fax +1 (978) 399-6899
>
Xinliang David Li - Oct. 1, 2012, 10:45 p.m.
On Mon, Oct 1, 2012 at 2:37 PM, Michael Meissner
<meissner@linux.vnet.ibm.com> wrote:
> I tracked down some of the other code that previously used REPORT_DETAILS, and
> MSG_NOTE is the new way to do the same thing.  This bootstraps and no
> unexpected errors occur during make check.  Is it ok to install?
>
> 2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
>
>         * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
>         (rs6000_density_test): Rework to accomidate 09-30 change by Sharad
>         Singhai.
>
>         * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
>
> Index: gcc/config/rs6000/rs6000.c
> ===================================================================
> --- gcc/config/rs6000/rs6000.c  (revision 191932)
> +++ gcc/config/rs6000/rs6000.c  (working copy)
> @@ -58,6 +58,7 @@
>  #include "tm-constrs.h"
>  #include "opts.h"
>  #include "tree-vectorizer.h"
> +#include "dumpfile.h"
>  #if TARGET_XCOFF
>  #include "xcoffout.h"  /* get declarations of xcoff_*_section_name */
>  #endif
> @@ -3518,11 +3519,11 @@ rs6000_density_test (rs6000_cost_data *d
>        && vec_cost + not_vec_cost > DENSITY_SIZE_THRESHOLD)
>      {
>        data->cost[vect_body] = vec_cost * (100 + DENSITY_PENALTY) / 100;
> -      if (vect_print_dump_info (REPORT_DETAILS))
> -       fprintf (vect_dump,
> -                "density %d%%, cost %d exceeds threshold, penalizing "
> -                "loop body cost by %d%%", density_pct,
> -                vec_cost + not_vec_cost, DENSITY_PENALTY);
> +      if (dump_kind_p (MSG_NOTE))

Is this check needed? Seems redundant.

David


> +       dump_printf_loc (MSG_NOTE, vect_location,
> +                        "density %d%%, cost %d exceeds threshold, penalizing "
> +                        "loop body cost by %d%%", density_pct,
> +                        vec_cost + not_vec_cost, DENSITY_PENALTY);
>      }
>  }
>
> Index: gcc/config/rs6000/t-rs6000
> ===================================================================
> --- gcc/config/rs6000/t-rs6000  (revision 191932)
> +++ gcc/config/rs6000/t-rs6000  (working copy)
> @@ -26,7 +26,7 @@ rs6000.o: $(CONFIG_H) $(SYSTEM_H) corety
>    $(OBSTACK_H) $(TREE_H) $(EXPR_H) $(OPTABS_H) except.h function.h \
>    output.h dbxout.h $(BASIC_BLOCK_H) toplev.h $(GGC_H) $(HASHTAB_H) \
>    $(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h gt-rs6000.h \
> -  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H)
> +  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H) dumpfile.h
>
>  rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
>      $(srcdir)/config/rs6000/rs6000-protos.h \
>
> --
> Michael Meissner, IBM
> 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA
> meissner@linux.vnet.ibm.com     fax +1 (978) 399-6899
>
Sharad Singhai - Oct. 1, 2012, 11:05 p.m.
Thanks for tracking down and fixing the powerpc port.

The "dump_kind_p ()" check is redundant but canonical form here. I
think blocks of dump code guarded by "if dump_kind_p (...)" might be
easier to read/maintain.

Sharad
Sharad


On Mon, Oct 1, 2012 at 3:45 PM, Xinliang David Li <davidxl@google.com> wrote:
> On Mon, Oct 1, 2012 at 2:37 PM, Michael Meissner
> <meissner@linux.vnet.ibm.com> wrote:
>> I tracked down some of the other code that previously used REPORT_DETAILS, and
>> MSG_NOTE is the new way to do the same thing.  This bootstraps and no
>> unexpected errors occur during make check.  Is it ok to install?
>>
>> 2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
>>
>>         * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
>>         (rs6000_density_test): Rework to accomidate 09-30 change by Sharad
>>         Singhai.
>>
>>         * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
>>
>> Index: gcc/config/rs6000/rs6000.c
>> ===================================================================
>> --- gcc/config/rs6000/rs6000.c  (revision 191932)
>> +++ gcc/config/rs6000/rs6000.c  (working copy)
>> @@ -58,6 +58,7 @@
>>  #include "tm-constrs.h"
>>  #include "opts.h"
>>  #include "tree-vectorizer.h"
>> +#include "dumpfile.h"
>>  #if TARGET_XCOFF
>>  #include "xcoffout.h"  /* get declarations of xcoff_*_section_name */
>>  #endif
>> @@ -3518,11 +3519,11 @@ rs6000_density_test (rs6000_cost_data *d
>>        && vec_cost + not_vec_cost > DENSITY_SIZE_THRESHOLD)
>>      {
>>        data->cost[vect_body] = vec_cost * (100 + DENSITY_PENALTY) / 100;
>> -      if (vect_print_dump_info (REPORT_DETAILS))
>> -       fprintf (vect_dump,
>> -                "density %d%%, cost %d exceeds threshold, penalizing "
>> -                "loop body cost by %d%%", density_pct,
>> -                vec_cost + not_vec_cost, DENSITY_PENALTY);
>> +      if (dump_kind_p (MSG_NOTE))
>
> Is this check needed? Seems redundant.
>
> David
>
>
>> +       dump_printf_loc (MSG_NOTE, vect_location,
>> +                        "density %d%%, cost %d exceeds threshold, penalizing "
>> +                        "loop body cost by %d%%", density_pct,
>> +                        vec_cost + not_vec_cost, DENSITY_PENALTY);
>>      }
>>  }
>>
>> Index: gcc/config/rs6000/t-rs6000
>> ===================================================================
>> --- gcc/config/rs6000/t-rs6000  (revision 191932)
>> +++ gcc/config/rs6000/t-rs6000  (working copy)
>> @@ -26,7 +26,7 @@ rs6000.o: $(CONFIG_H) $(SYSTEM_H) corety
>>    $(OBSTACK_H) $(TREE_H) $(EXPR_H) $(OPTABS_H) except.h function.h \
>>    output.h dbxout.h $(BASIC_BLOCK_H) toplev.h $(GGC_H) $(HASHTAB_H) \
>>    $(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h gt-rs6000.h \
>> -  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H)
>> +  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H) dumpfile.h
>>
>>  rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
>>      $(srcdir)/config/rs6000/rs6000-protos.h \
>>
>> --
>> Michael Meissner, IBM
>> 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA
>> meissner@linux.vnet.ibm.com     fax +1 (978) 399-6899
>>
Xinliang David Li - Oct. 1, 2012, 11:11 p.m.
On Mon, Oct 1, 2012 at 4:05 PM, Sharad Singhai <singhai@google.com> wrote:
> Thanks for tracking down and fixing the powerpc port.
>
> The "dump_kind_p ()" check is redundant but canonical form here. I
> think blocks of dump code guarded by "if dump_kind_p (...)" might be
> easier to read/maintain.
>

I find it confusing to be honest. The redundant check serves no purpose.

David

> Sharad
> Sharad
>
>
> On Mon, Oct 1, 2012 at 3:45 PM, Xinliang David Li <davidxl@google.com> wrote:
>> On Mon, Oct 1, 2012 at 2:37 PM, Michael Meissner
>> <meissner@linux.vnet.ibm.com> wrote:
>>> I tracked down some of the other code that previously used REPORT_DETAILS, and
>>> MSG_NOTE is the new way to do the same thing.  This bootstraps and no
>>> unexpected errors occur during make check.  Is it ok to install?
>>>
>>> 2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
>>>
>>>         * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
>>>         (rs6000_density_test): Rework to accomidate 09-30 change by Sharad
>>>         Singhai.
>>>
>>>         * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
>>>
>>> Index: gcc/config/rs6000/rs6000.c
>>> ===================================================================
>>> --- gcc/config/rs6000/rs6000.c  (revision 191932)
>>> +++ gcc/config/rs6000/rs6000.c  (working copy)
>>> @@ -58,6 +58,7 @@
>>>  #include "tm-constrs.h"
>>>  #include "opts.h"
>>>  #include "tree-vectorizer.h"
>>> +#include "dumpfile.h"
>>>  #if TARGET_XCOFF
>>>  #include "xcoffout.h"  /* get declarations of xcoff_*_section_name */
>>>  #endif
>>> @@ -3518,11 +3519,11 @@ rs6000_density_test (rs6000_cost_data *d
>>>        && vec_cost + not_vec_cost > DENSITY_SIZE_THRESHOLD)
>>>      {
>>>        data->cost[vect_body] = vec_cost * (100 + DENSITY_PENALTY) / 100;
>>> -      if (vect_print_dump_info (REPORT_DETAILS))
>>> -       fprintf (vect_dump,
>>> -                "density %d%%, cost %d exceeds threshold, penalizing "
>>> -                "loop body cost by %d%%", density_pct,
>>> -                vec_cost + not_vec_cost, DENSITY_PENALTY);
>>> +      if (dump_kind_p (MSG_NOTE))
>>
>> Is this check needed? Seems redundant.
>>
>> David
>>
>>
>>> +       dump_printf_loc (MSG_NOTE, vect_location,
>>> +                        "density %d%%, cost %d exceeds threshold, penalizing "
>>> +                        "loop body cost by %d%%", density_pct,
>>> +                        vec_cost + not_vec_cost, DENSITY_PENALTY);
>>>      }
>>>  }
>>>
>>> Index: gcc/config/rs6000/t-rs6000
>>> ===================================================================
>>> --- gcc/config/rs6000/t-rs6000  (revision 191932)
>>> +++ gcc/config/rs6000/t-rs6000  (working copy)
>>> @@ -26,7 +26,7 @@ rs6000.o: $(CONFIG_H) $(SYSTEM_H) corety
>>>    $(OBSTACK_H) $(TREE_H) $(EXPR_H) $(OPTABS_H) except.h function.h \
>>>    output.h dbxout.h $(BASIC_BLOCK_H) toplev.h $(GGC_H) $(HASHTAB_H) \
>>>    $(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h gt-rs6000.h \
>>> -  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H)
>>> +  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H) dumpfile.h
>>>
>>>  rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
>>>      $(srcdir)/config/rs6000/rs6000-protos.h \
>>>
>>> --
>>> Michael Meissner, IBM
>>> 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA
>>> meissner@linux.vnet.ibm.com     fax +1 (978) 399-6899
>>>
Richard Guenther - Oct. 2, 2012, 9:25 a.m.
On Tue, Oct 2, 2012 at 1:11 AM, Xinliang David Li <davidxl@google.com> wrote:
> On Mon, Oct 1, 2012 at 4:05 PM, Sharad Singhai <singhai@google.com> wrote:
>> Thanks for tracking down and fixing the powerpc port.
>>
>> The "dump_kind_p ()" check is redundant but canonical form here. I
>> think blocks of dump code guarded by "if dump_kind_p (...)" might be
>> easier to read/maintain.
>>
>
> I find it confusing to be honest. The redundant check serves no purpose.

The check should be inlined and avoid the call to the diagnostic routine,
thus speed up compile-time.  We should use this pattern, especially
if it guards multiple calls.

Richard.

> David
>
>> Sharad
>> Sharad
>>
>>
>> On Mon, Oct 1, 2012 at 3:45 PM, Xinliang David Li <davidxl@google.com> wrote:
>>> On Mon, Oct 1, 2012 at 2:37 PM, Michael Meissner
>>> <meissner@linux.vnet.ibm.com> wrote:
>>>> I tracked down some of the other code that previously used REPORT_DETAILS, and
>>>> MSG_NOTE is the new way to do the same thing.  This bootstraps and no
>>>> unexpected errors occur during make check.  Is it ok to install?
>>>>
>>>> 2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
>>>>
>>>>         * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
>>>>         (rs6000_density_test): Rework to accomidate 09-30 change by Sharad
>>>>         Singhai.
>>>>
>>>>         * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
>>>>
>>>> Index: gcc/config/rs6000/rs6000.c
>>>> ===================================================================
>>>> --- gcc/config/rs6000/rs6000.c  (revision 191932)
>>>> +++ gcc/config/rs6000/rs6000.c  (working copy)
>>>> @@ -58,6 +58,7 @@
>>>>  #include "tm-constrs.h"
>>>>  #include "opts.h"
>>>>  #include "tree-vectorizer.h"
>>>> +#include "dumpfile.h"
>>>>  #if TARGET_XCOFF
>>>>  #include "xcoffout.h"  /* get declarations of xcoff_*_section_name */
>>>>  #endif
>>>> @@ -3518,11 +3519,11 @@ rs6000_density_test (rs6000_cost_data *d
>>>>        && vec_cost + not_vec_cost > DENSITY_SIZE_THRESHOLD)
>>>>      {
>>>>        data->cost[vect_body] = vec_cost * (100 + DENSITY_PENALTY) / 100;
>>>> -      if (vect_print_dump_info (REPORT_DETAILS))
>>>> -       fprintf (vect_dump,
>>>> -                "density %d%%, cost %d exceeds threshold, penalizing "
>>>> -                "loop body cost by %d%%", density_pct,
>>>> -                vec_cost + not_vec_cost, DENSITY_PENALTY);
>>>> +      if (dump_kind_p (MSG_NOTE))
>>>
>>> Is this check needed? Seems redundant.
>>>
>>> David
>>>
>>>
>>>> +       dump_printf_loc (MSG_NOTE, vect_location,
>>>> +                        "density %d%%, cost %d exceeds threshold, penalizing "
>>>> +                        "loop body cost by %d%%", density_pct,
>>>> +                        vec_cost + not_vec_cost, DENSITY_PENALTY);
>>>>      }
>>>>  }
>>>>
>>>> Index: gcc/config/rs6000/t-rs6000
>>>> ===================================================================
>>>> --- gcc/config/rs6000/t-rs6000  (revision 191932)
>>>> +++ gcc/config/rs6000/t-rs6000  (working copy)
>>>> @@ -26,7 +26,7 @@ rs6000.o: $(CONFIG_H) $(SYSTEM_H) corety
>>>>    $(OBSTACK_H) $(TREE_H) $(EXPR_H) $(OPTABS_H) except.h function.h \
>>>>    output.h dbxout.h $(BASIC_BLOCK_H) toplev.h $(GGC_H) $(HASHTAB_H) \
>>>>    $(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h gt-rs6000.h \
>>>> -  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H)
>>>> +  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H) dumpfile.h
>>>>
>>>>  rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
>>>>      $(srcdir)/config/rs6000/rs6000-protos.h \
>>>>
>>>> --
>>>> Michael Meissner, IBM
>>>> 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA
>>>> meissner@linux.vnet.ibm.com     fax +1 (978) 399-6899
>>>>

Patch

Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c	(revision 191932)
+++ gcc/config/rs6000/rs6000.c	(working copy)
@@ -58,6 +58,7 @@ 
 #include "tm-constrs.h"
 #include "opts.h"
 #include "tree-vectorizer.h"
+#include "dumpfile.h"
 #if TARGET_XCOFF
 #include "xcoffout.h"  /* get declarations of xcoff_*_section_name */
 #endif
@@ -3518,11 +3519,11 @@  rs6000_density_test (rs6000_cost_data *d
       && vec_cost + not_vec_cost > DENSITY_SIZE_THRESHOLD)
     {
       data->cost[vect_body] = vec_cost * (100 + DENSITY_PENALTY) / 100;
-      if (vect_print_dump_info (REPORT_DETAILS))
-	fprintf (vect_dump,
-		 "density %d%%, cost %d exceeds threshold, penalizing "
-		 "loop body cost by %d%%", density_pct, 
-		 vec_cost + not_vec_cost, DENSITY_PENALTY);
+      if (dump_kind_p (MSG_NOTE))
+	dump_printf_loc (MSG_NOTE, vect_location,
+			 "density %d%%, cost %d exceeds threshold, penalizing "
+			 "loop body cost by %d%%", density_pct,
+			 vec_cost + not_vec_cost, DENSITY_PENALTY);
     }
 }
 
Index: gcc/config/rs6000/t-rs6000
===================================================================
--- gcc/config/rs6000/t-rs6000	(revision 191932)
+++ gcc/config/rs6000/t-rs6000	(working copy)
@@ -26,7 +26,7 @@  rs6000.o: $(CONFIG_H) $(SYSTEM_H) corety
   $(OBSTACK_H) $(TREE_H) $(EXPR_H) $(OPTABS_H) except.h function.h \
   output.h dbxout.h $(BASIC_BLOCK_H) toplev.h $(GGC_H) $(HASHTAB_H) \
   $(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h gt-rs6000.h \
-  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H)
+  cfgloop.h $(OPTS_H) $(COMMON_TARGET_H) dumpfile.h
 
 rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
     $(srcdir)/config/rs6000/rs6000-protos.h \