On Nov 29, 2013, at 4:24 AM, Richard Biener <richard.guent...@gmail.com> wrote:

> On Thu, Nov 28, 2013 at 6:11 PM, Kenneth Zadeck
> <zad...@naturalbridge.com> wrote:
>> This patch does three things in wide-int:
>> 
>> 1) it cleans up some comments.
>> 2) removes a small amount of trash.
>> 3) it changes the max size of the wide int from being 4x of
>> MAX_BITSIZE_MODE_ANY_INT to 2x +1.   This should improve large muls and divs
>> as well as perhaps help with some cache behavior.
> 
> @@ -235,8 +233,8 @@ along with GCC; see the file COPYING3.
>    range of a multiply.  This code needs 2n + 2 bits.  */
> 
> #define WIDE_INT_MAX_ELTS \
> -  ((4 * MAX_BITSIZE_MODE_ANY_INT + HOST_BITS_PER_WIDE_INT - 1) \
> -   / HOST_BITS_PER_WIDE_INT)
> +  (((2 * MAX_BITSIZE_MODE_ANY_INT + HOST_BITS_PER_WIDE_INT - 1) \
> +    / HOST_BITS_PER_WIDE_INT) + 1)
> 
> I always wondered why VRP (if that is the only reason we do 2*n+1)
> cannot simply use FIXED_WIDE_INT(MAX_BITSIZE_MODE_ANY_INT*2 + 1)?
> Other widest_int users should not suffer IMHO.  widest_int should
> strictly cover all modes that the target can do any arithmetic on
> (thus not XImode or OImode on x86_64).
> 
> Richard.

We did not used to be able to do that.  This code is much older.   So how do 
you detect if someone has a mode and does not do math it? I had thought that 
the only reason that people defined these mode and did not use them was because 
it took a long time to properly understand how broken gcc really is.   Anyway 
there is I call to mul-full that would need reworking.
> 
>> ok to commit

Reply via email to