This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [wide-int] small cleanup in wide-int.*
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Kenneth Zadeck <zadeck at naturalbridge dot com>
- Cc: Richard Sandiford <rdsandiford at googlemail dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>, Mike Stump <mikestump at comcast dot net>
- Date: Fri, 29 Nov 2013 11:24:36 +0100
- Subject: Re: [wide-int] small cleanup in wide-int.*
- Authentication-results: sourceware.org; auth=none
- References: <52977927 dot 5010008 at naturalbridge dot com>
On Thu, Nov 28, 2013 at 6:11 PM, Kenneth Zadeck
<zadeck@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.
> ok to commit