Re: Move reg_equiv* arrays into a single VEC structure

2011-03-31 Thread Jeff Law
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 03/30/11 10:51, Richard Sandiford wrote:
> Nice cleanup thanks.  Just noticed a couple of things:
> 
> Jeff Law  writes:
>> *** struct reload
>> *** 100,106 
>> int inc;
>> /* A reg for which reload_in is the equivalent.
>>If reload_in is a symbol_ref which came from
>> !  reg_equiv_constant, then this is the pseudo
>>which has that symbol_ref as equivalent.  */
>> rtx in_reg;
>> rtx out_reg;
>> --- 100,106 
>> int inc;
>> /* A reg for which reload_in is the equivalent.
>>If reload_in is a symbol_ref which came from
>> !  reg_equiv_consant, then this is the pseudo
>>which has that symbol_ref as equivalent.  */
>> rtx in_reg;
>> rtx out_reg;
> 
> Adds typo.
> 
>> *** elimination_effects (rtx x, enum machine
>> *** 3002,3011 
>>}
>>   
>>  }
>> !   else if (reg_renumber[regno] < 0 && reg_equiv_constant
>> !   && reg_equiv_constant[regno]
>> !   && ! function_invariant_p (reg_equiv_constant[regno]))
>> !elimination_effects (reg_equiv_constant[regno], mem_mode);
>> return;
>>   
>>   case PRE_INC:
>> --- 2996,3006 
>>}
>>   
>>  }
>> !   else if (reg_renumber[regno] < 0
>> !   && reg_equiv_constant (0)
>> !   && reg_equiv_constant (regno)
>> !   && ! function_invariant_p (reg_equiv_constant (regno)))
>> !elimination_effects (reg_equiv_constant (regno), mem_mode);
>> return;
>>   
>>   case PRE_INC:
> 
> Looks like this should be s/reg_equiv_constant (0)/reg_equivs != 0/.
Bootstrapped & regression tested on x86_64-unknown-linux-gnu.  Installed
as obvious.

jeff

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJNlKPmAAoJEBRtltQi2kC7f1kH/1t6YammyGZdUelSmGgoxLOI
dbmzBULytfTvtR3s6reYtqpLxf5h6zGVEQtSNGxdH+59/X79pFYz/zfJcWRgWYBu
zuua5tAqZdMzGB8xZOOh81U924Pw16nzC3KwX1Bbj7LJFzr95zu7FOvzahR6ikEi
gmsu7liwOu+eEIgYEo9YV1j05XXDwBGsxvJFCuUzH2R6kE9tGafck/E+H5l9+oUw
Rlbza01ukFGJHSimOPdO4TDCYmhR8u/FwMtJWO05wKfhBC6xw2ronI7bo2cKgMUM
GVMNGncfIisKYVa8rzso7aKBnzcPnmG8E4tJ2wvXe+OsvDe5Nj9XWQrRV8mtOHo=
=j7SI
-END PGP SIGNATURE-
* reload1.c (elimination_effects): Fix typo in recent change.

Index: reload1.c
===
*** reload1.c   (revision 171787)
--- reload1.c   (working copy)
*** elimination_effects (rtx x, enum machine
*** 2997,3003 
  
}
else if (reg_renumber[regno] < 0
!  && reg_equiv_constant (0)
   && reg_equiv_constant (regno)
   && ! function_invariant_p (reg_equiv_constant (regno)))
elimination_effects (reg_equiv_constant (regno), mem_mode);
--- 2997,3003 
  
}
else if (reg_renumber[regno] < 0
!  && reg_equivs != 0
   && reg_equiv_constant (regno)
   && ! function_invariant_p (reg_equiv_constant (regno)))
elimination_effects (reg_equiv_constant (regno), mem_mode);


Re: Move reg_equiv* arrays into a single VEC structure

2011-03-30 Thread Jeff Law
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 03/30/11 10:51, Richard Sandiford wrote:
> Nice cleanup thanks.  Just noticed a couple of things:
> 
> Jeff Law  writes:
>> *** struct reload
>> *** 100,106 
>> int inc;
>> /* A reg for which reload_in is the equivalent.
>>If reload_in is a symbol_ref which came from
>> !  reg_equiv_constant, then this is the pseudo
>>which has that symbol_ref as equivalent.  */
>> rtx in_reg;
>> rtx out_reg;
>> --- 100,106 
>> int inc;
>> /* A reg for which reload_in is the equivalent.
>>If reload_in is a symbol_ref which came from
>> !  reg_equiv_consant, then this is the pseudo
>>which has that symbol_ref as equivalent.  */
>> rtx in_reg;
>> rtx out_reg;
> 
> Adds typo.
Yea.  I had changed the comment when I was using VEC_blah directly, then
introduced the typo when I went to using accessor macros and wanted to
change the comment back to its original form :(

I just checked in a fix for the typo.

> 
>> *** elimination_effects (rtx x, enum machine
>> *** 3002,3011 
>>}
>>   
>>  }
>> !   else if (reg_renumber[regno] < 0 && reg_equiv_constant
>> !   && reg_equiv_constant[regno]
>> !   && ! function_invariant_p (reg_equiv_constant[regno]))
>> !elimination_effects (reg_equiv_constant[regno], mem_mode);
>> return;
>>   
>>   case PRE_INC:
>> --- 2996,3006 
>>}
>>   
>>  }
>> !   else if (reg_renumber[regno] < 0
>> !   && reg_equiv_constant (0)
>> !   && reg_equiv_constant (regno)
>> !   && ! function_invariant_p (reg_equiv_constant (regno)))
>> !elimination_effects (reg_equiv_constant (regno), mem_mode);
>> return;
>>   
>>   case PRE_INC:
> 
> Looks like this should be s/reg_equiv_constant (0)/reg_equivs != 0/.
I thought I'd fixed these.  I certainly remember looking at them and
thinking that can't be right at some point.  I'll look at it again more
closely tomorrow and take appropriate corrective action.

Thanks for the feedback,
Jeff
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJNk8ZSAAoJEBRtltQi2kC7+qYH/R0i1/YC3efnLuQjZ0uieuCU
0b/sMDvP+0xngPbKKn9YviBuNhUv2/poPG1OOOQtolHeZ5c8rftecZKMRgjtmX9W
jYxhuY2OLBBTLLPo4eFDdBbEP/m90RGEBtumeIx1isPTOjQ3LVuBF+9GB+wbnr/W
OLox1MSfPT7GV3pbBeSMiHiKkw5VOeFKd4vBIbefWAPgjO0G8LFexBYWkw04j1F5
tXbuLn/cnSb4PLoRgrCxDv4XS8Wzx1YJcFtcnjn+a2t1HPUARkSYCSn8o94Yytub
k263YKwgRsqwxnrXmGght4+K2kuVjitANa6iX24DWTa+eJBruQ9ObA/f3Xs1P5E=
=SgX4
-END PGP SIGNATURE-


Re: Move reg_equiv* arrays into a single VEC structure

2011-03-30 Thread H.J. Lu
On Wed, Mar 30, 2011 at 7:23 AM, Jeff Law  wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> As originally discussed here:
>
> http://gcc.gnu.org/ml/gcc-patches/2010-05/msg00987.html
>
> Changes since the original submission:
>
> Per Richi's suggestion I changed the patch to use a GC'd VEC.  I defined
> accessor macros so that a ton of reformatting isn't needed and finally I
> made the appropriate tweaks to the few backends that peeked at the
> reg_equiv arrays.
>
> Given the changes and the length of time since the original submission,
> I think it's probably best to get a fresh approval rather than rely on
> the prior approval.
>
> Bootstrapped and regression tested on x86_64-unknown-linux-gnu.
>

It breaks GCC bootstrap on Linux/x86:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48371

-- 
H.J.


Re: Move reg_equiv* arrays into a single VEC structure

2011-03-30 Thread Richard Sandiford
Nice cleanup thanks.  Just noticed a couple of things:

Jeff Law  writes:
> *** struct reload
> *** 100,106 
> int inc;
> /* A reg for which reload_in is the equivalent.
>If reload_in is a symbol_ref which came from
> !  reg_equiv_constant, then this is the pseudo
>which has that symbol_ref as equivalent.  */
> rtx in_reg;
> rtx out_reg;
> --- 100,106 
> int inc;
> /* A reg for which reload_in is the equivalent.
>If reload_in is a symbol_ref which came from
> !  reg_equiv_consant, then this is the pseudo
>which has that symbol_ref as equivalent.  */
> rtx in_reg;
> rtx out_reg;

Adds typo.

> *** elimination_effects (rtx x, enum machine
> *** 3002,3011 
> }
>   
>   }
> !   else if (reg_renumber[regno] < 0 && reg_equiv_constant
> !&& reg_equiv_constant[regno]
> !&& ! function_invariant_p (reg_equiv_constant[regno]))
> ! elimination_effects (reg_equiv_constant[regno], mem_mode);
> return;
>   
>   case PRE_INC:
> --- 2996,3006 
> }
>   
>   }
> !   else if (reg_renumber[regno] < 0
> !&& reg_equiv_constant (0)
> !&& reg_equiv_constant (regno)
> !&& ! function_invariant_p (reg_equiv_constant (regno)))
> ! elimination_effects (reg_equiv_constant (regno), mem_mode);
> return;
>   
>   case PRE_INC:

Looks like this should be s/reg_equiv_constant (0)/reg_equivs != 0/.

Richard


Re: Move reg_equiv* arrays into a single VEC structure

2011-03-30 Thread Richard Guenther
On Wed, Mar 30, 2011 at 4:23 PM, Jeff Law  wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> As originally discussed here:
>
> http://gcc.gnu.org/ml/gcc-patches/2010-05/msg00987.html
>
> Changes since the original submission:
>
> Per Richi's suggestion I changed the patch to use a GC'd VEC.  I defined
> accessor macros so that a ton of reformatting isn't needed and finally I
> made the appropriate tweaks to the few backends that peeked at the
> reg_equiv arrays.
>
> Given the changes and the length of time since the original submission,
> I think it's probably best to get a fresh approval rather than rely on
> the prior approval.

Looks good to me.

Thanks,
Richard.

> Bootstrapped and regression tested on x86_64-unknown-linux-gnu.
>
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.11 (GNU/Linux)
> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
>
> iQEcBAEBAgAGBQJNkzznAAoJEBRtltQi2kC7VgYH/0yTkwWkDRyalReMk3whdIXO
> 8qw5H6c9Gz+Yj+EnnPySKsFIvJKMBTQHIpdCzjTCVWD/Z7LSJwERzzlNCPrQu2au
> dpOoUYCTAwgSW0Us9B+2Bcf2DABinYLV+hgKAKFEVi98CheZe3hZZ14lm5mlYDec
> INYKyfqYHmyahT8fa6ABY2kp0X2xhQhJ0VAGPI34kytJpgLpIdtRwq6PsdsPM0PJ
> frLAY5xIEmJqBB30RaPqnD07u06xZHi+S9gfAJa4LJTUqVALNusYdZzZajKMtF3i
> BCXK4UFk+J2MlM9xZkVWqQiryLc6arVT2bMQcvz7tXTMZkY6ZdZ7sKFBgKea6vM=
> =iMqQ
> -END PGP SIGNATURE-
>