public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: RFA: patch to solve spec2006 degradation reported in 37243
       [not found] <48B999DF.7080500@redhat.com>
@ 2008-09-03 20:17 ` Jeff Law
  2008-09-03 20:25   ` Vladimir Makarov
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff Law @ 2008-09-03 20:17 UTC (permalink / raw)
  To: Vladimir Makarov; +Cc: gcc-patches

Vladimir Makarov wrote:
> The following patch solves SPEC2006 degradation reported in PR37243.
> The analysis of the problem can be found in
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37243
>
> The patch was successfully bootstrapped and tested on x86_64.
>
> 2008-08-30  Vladimir Makarov  <vmakarov@redhat.com>
>
>    PR rtl-opt/37243
>
>    * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
>    all_allocnos.
>
>    * ira-color.c (print_loop_title): Use all_allocnos.
>    (color_pass): Ditto.  Don't add border_allocnos.  Check that
>    subloop allocno in the correspdoning bitmap all_allocnos.
>
>    * ira-emit.c (change_loop): Use all_allocnos.
>
>    * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
>    Ditto.
>    (ira_create_allocno): Set up all_allocnos bit for the created
>    allocno.
>    (create_cap_allocno): Remove setting mentioned_allocnos.
>    (create_insn_allocnos): Ditto.
>    (remove_unnecessary_allocnos): Use all_allocnos.
>    (check_allocno_creation): Check that allocnos are in the
>    corresponding bitmap all_allocnos.
>   
OK.  Please install if you haven't done so already.

Thanks,
Jeff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: RFA: patch to solve spec2006 degradation reported in 37243
  2008-09-03 20:17 ` RFA: patch to solve spec2006 degradation reported in 37243 Jeff Law
@ 2008-09-03 20:25   ` Vladimir Makarov
  2008-09-04  5:38     ` H.J. Lu
  0 siblings, 1 reply; 5+ messages in thread
From: Vladimir Makarov @ 2008-09-03 20:25 UTC (permalink / raw)
  To: Jeff Law; +Cc: gcc-patches, Kenneth Zadeck

Jeff Law wrote:
> Vladimir Makarov wrote:
>> The following patch solves SPEC2006 degradation reported in PR37243.
>> The analysis of the problem can be found in
>>
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37243
>>
>> The patch was successfully bootstrapped and tested on x86_64.
>>
>> 2008-08-30  Vladimir Makarov  <vmakarov@redhat.com>
>>
>>    PR rtl-opt/37243
>>
>>    * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
>>    all_allocnos.
>>
>>    * ira-color.c (print_loop_title): Use all_allocnos.
>>    (color_pass): Ditto.  Don't add border_allocnos.  Check that
>>    subloop allocno in the correspdoning bitmap all_allocnos.
>>
>>    * ira-emit.c (change_loop): Use all_allocnos.
>>
>>    * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
>>    Ditto.
>>    (ira_create_allocno): Set up all_allocnos bit for the created
>>    allocno.
>>    (create_cap_allocno): Remove setting mentioned_allocnos.
>>    (create_insn_allocnos): Ditto.
>>    (remove_unnecessary_allocnos): Use all_allocnos.
>>    (check_allocno_creation): Check that allocnos are in the
>>    corresponding bitmap all_allocnos.
>>   
> OK.  Please install if you haven't done so already.
Thanks.  Done.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: RFA: patch to solve spec2006 degradation reported in 37243
  2008-09-03 20:25   ` Vladimir Makarov
@ 2008-09-04  5:38     ` H.J. Lu
  2008-09-04 15:39       ` Vladimir Makarov
  2008-09-04 16:48       ` Jeff Law
  0 siblings, 2 replies; 5+ messages in thread
From: H.J. Lu @ 2008-09-04  5:38 UTC (permalink / raw)
  To: Vladimir Makarov; +Cc: Jeff Law, gcc-patches, Kenneth Zadeck

On Wed, Sep 03, 2008 at 04:22:20PM -0400, Vladimir Makarov wrote:
> Jeff Law wrote:
>> Vladimir Makarov wrote:
>>> The following patch solves SPEC2006 degradation reported in PR37243.
>>> The analysis of the problem can be found in
>>>
>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37243
>>>
>>> The patch was successfully bootstrapped and tested on x86_64.
>>>
>>> 2008-08-30  Vladimir Makarov  <vmakarov@redhat.com>
>>>
>>>    PR rtl-opt/37243
>>>
>>>    * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
>>>    all_allocnos.
>>>
>>>    * ira-color.c (print_loop_title): Use all_allocnos.
>>>    (color_pass): Ditto.  Don't add border_allocnos.  Check that
>>>    subloop allocno in the correspdoning bitmap all_allocnos.
>>>
>>>    * ira-emit.c (change_loop): Use all_allocnos.
>>>
>>>    * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
>>>    Ditto.
>>>    (ira_create_allocno): Set up all_allocnos bit for the created
>>>    allocno.
>>>    (create_cap_allocno): Remove setting mentioned_allocnos.
>>>    (create_insn_allocnos): Ditto.
>>>    (remove_unnecessary_allocnos): Use all_allocnos.
>>>    (check_allocno_creation): Check that allocnos are in the
>>>    corresponding bitmap all_allocnos.
>>>   
>> OK.  Please install if you haven't done so already.
> Thanks.  Done.

Here is the testcase for this bug. It failed at -O2 before the
fix was checked in.  OK for trunk?

Thanks.


H.J.
---
2008-09-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/37243
	* gfortran.dg/pr37243.f: New.

--- gcc/testsuite/gfortran.dg/pr37243.f.ira	2008-09-03 21:55:51.000000000 -0700
+++ gcc/testsuite/gfortran.dg/pr37243.f	2008-09-03 21:36:56.000000000 -0700
@@ -0,0 +1,61 @@
+! PR rtl-optimization/37243
+! { dg-do run }
+! Check if register allocator handles IR flattening correctly.
+      SUBROUTINE SCHMD(V,M,N,LDV)
+      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+      LOGICAL GOPARR,DSKWRK,MASWRK
+      DIMENSION V(LDV,N)
+      COMMON /IOFILE/ IR,IW,IP,IS,IPK,IDAF,NAV,IODA(400)
+      COMMON /PAR   / ME,MASTER,NPROC,IBTYP,IPTIM,GOPARR,DSKWRK,MASWRK
+      PARAMETER (ZERO=0.0D+00, ONE=1.0D+00, TOL=1.0D-10)
+      IF (M .EQ. 0) GO TO 180
+      DO 160 I = 1,M
+      DUMI = ZERO
+      DO 100 K = 1,N
+  100 DUMI = DUMI+V(K,I)*V(K,I)
+      DUMI = ONE/ SQRT(DUMI)
+      DO 120 K = 1,N
+  120 V(K,I) = V(K,I)*DUMI
+      IF (I .EQ. M) GO TO 160
+      I1 = I+1
+      DO 140 J = I1,M
+      DUM = -DDOT(N,V(1,J),1,V(1,I),1)
+      CALL DAXPY(N,DUM,V(1,I),1,V(1,J),1)
+  140 CONTINUE
+  160 CONTINUE
+      IF (M .EQ. N) RETURN
+  180 CONTINUE
+      I = M
+      J = 0
+  200 I0 = I
+      I = I+1
+      IF (I .GT. N) RETURN
+  220 J = J+1
+      IF (J .GT. N) GO TO 320
+      DO 240 K = 1,N
+  240 V(K,I) = ZERO
+      CALL DAXPY(N,DUM,V(1,II),1,V(1,I),1)
+  260 CONTINUE
+      DUMI = ZERO
+      DO 280 K = 1,N
+  280 DUMI = DUMI+V(K,I)*V(K,I)
+      IF ( ABS(DUMI) .LT. TOL) GO TO 220
+      DO 300 K = 1,N
+  300 V(K,I) = V(K,I)*DUMI
+      GO TO 200
+  320 END
+      program main
+      DOUBLE PRECISION V
+      DIMENSION V(18, 18)
+      common // v
+
+      call schmd(V, 1, 18, 18)
+      end
+
+      subroutine DAXPY
+      end
+
+      FUNCTION DDOT ()
+      DOUBLE PRECISION DDOT
+      DDOT = 1
+      end

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: RFA: patch to solve spec2006 degradation reported in 37243
  2008-09-04  5:38     ` H.J. Lu
@ 2008-09-04 15:39       ` Vladimir Makarov
  2008-09-04 16:48       ` Jeff Law
  1 sibling, 0 replies; 5+ messages in thread
From: Vladimir Makarov @ 2008-09-04 15:39 UTC (permalink / raw)
  To: H.J. Lu; +Cc: Jeff Law, gcc-patches, Kenneth Zadeck

H.J. Lu wrote:
> On Wed, Sep 03, 2008 at 04:22:20PM -0400, Vladimir Makarov wrote:
>   
>> Jeff Law wrote:
>>     
>>> Vladimir Makarov wrote:
>>>       
>>>> The following patch solves SPEC2006 degradation reported in PR37243.
>>>> The analysis of the problem can be found in
>>>>
>>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37243
>>>>
>>>> The patch was successfully bootstrapped and tested on x86_64.
>>>>
>>>> 2008-08-30  Vladimir Makarov  <vmakarov@redhat.com>
>>>>
>>>>    PR rtl-opt/37243
>>>>
>>>>    * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
>>>>    all_allocnos.
>>>>
>>>>    * ira-color.c (print_loop_title): Use all_allocnos.
>>>>    (color_pass): Ditto.  Don't add border_allocnos.  Check that
>>>>    subloop allocno in the correspdoning bitmap all_allocnos.
>>>>
>>>>    * ira-emit.c (change_loop): Use all_allocnos.
>>>>
>>>>    * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
>>>>    Ditto.
>>>>    (ira_create_allocno): Set up all_allocnos bit for the created
>>>>    allocno.
>>>>    (create_cap_allocno): Remove setting mentioned_allocnos.
>>>>    (create_insn_allocnos): Ditto.
>>>>    (remove_unnecessary_allocnos): Use all_allocnos.
>>>>    (check_allocno_creation): Check that allocnos are in the
>>>>    corresponding bitmap all_allocnos.
>>>>   
>>>>         
>>> OK.  Please install if you haven't done so already.
>>>       
>> Thanks.  Done.
>>     
>
> Here is the testcase for this bug. It failed at -O2 before the
> fix was checked in.  OK for trunk?
>
>
> 2008-09-03  H.J. Lu  <hongjiu.lu@intel.com>
>
> 	PR rtl-optimization/37243
> 	* gfortran.dg/pr37243.f: New.
>
>
>   
Thanks, H.J.  It looks ok to me to commit to the trunk.  That was a 
really good test for IRA.  I should have added it the first time.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: RFA: patch to solve spec2006 degradation reported in 37243
  2008-09-04  5:38     ` H.J. Lu
  2008-09-04 15:39       ` Vladimir Makarov
@ 2008-09-04 16:48       ` Jeff Law
  1 sibling, 0 replies; 5+ messages in thread
From: Jeff Law @ 2008-09-04 16:48 UTC (permalink / raw)
  To: H.J. Lu; +Cc: Vladimir Makarov, gcc-patches, Kenneth Zadeck

H.J. Lu wrote:
> On Wed, Sep 03, 2008 at 04:22:20PM -0400, Vladimir Makarov wrote:
>   
>> Jeff Law wrote:
>>     
>>> Vladimir Makarov wrote:
>>>       
>>>> The following patch solves SPEC2006 degradation reported in PR37243.
>>>> The analysis of the problem can be found in
>>>>
>>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37243
>>>>
>>>> The patch was successfully bootstrapped and tested on x86_64.
>>>>
>>>> 2008-08-30  Vladimir Makarov  <vmakarov@redhat.com>
>>>>
>>>>    PR rtl-opt/37243
>>>>
>>>>    * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
>>>>    all_allocnos.
>>>>
>>>>    * ira-color.c (print_loop_title): Use all_allocnos.
>>>>    (color_pass): Ditto.  Don't add border_allocnos.  Check that
>>>>    subloop allocno in the correspdoning bitmap all_allocnos.
>>>>
>>>>    * ira-emit.c (change_loop): Use all_allocnos.
>>>>
>>>>    * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
>>>>    Ditto.
>>>>    (ira_create_allocno): Set up all_allocnos bit for the created
>>>>    allocno.
>>>>    (create_cap_allocno): Remove setting mentioned_allocnos.
>>>>    (create_insn_allocnos): Ditto.
>>>>    (remove_unnecessary_allocnos): Use all_allocnos.
>>>>    (check_allocno_creation): Check that allocnos are in the
>>>>    corresponding bitmap all_allocnos.
>>>>   
>>>>         
>>> OK.  Please install if you haven't done so already.
>>>       
>> Thanks.  Done.
>>     
>
> Here is the testcase for this bug. It failed at -O2 before the
> fix was checked in.  OK for trunk?
>
> Thanks.
>
>
> H.J.
> ---
> 2008-09-03  H.J. Lu  <hongjiu.lu@intel.com>
>
> 	PR rtl-optimization/37243
> 	* gfortran.dg/pr37243.f: New.
>   
OK.  Please install if you haven't already.

Thanks,
Jeff

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-09-04 16:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <48B999DF.7080500@redhat.com>
2008-09-03 20:17 ` RFA: patch to solve spec2006 degradation reported in 37243 Jeff Law
2008-09-03 20:25   ` Vladimir Makarov
2008-09-04  5:38     ` H.J. Lu
2008-09-04 15:39       ` Vladimir Makarov
2008-09-04 16:48       ` Jeff Law

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).