From: Richard Biener <richard.guenther@gmail.com>
To: Richard Biener <richard.guenther@gmail.com>,
Kenneth Zadeck <zadeck@naturalbridge.com>,
Mike Stump <mikestump@comcast.net>,
gcc-patches <gcc-patches@gcc.gnu.org>,
Lawrence Crowl <crowl@google.com>,
Ian Lance Taylor <iant@google.com>,
rdsandiford@googlemail.com
Subject: Re: patch to fix constant math -5th patch, rtl
Date: Wed, 24 Apr 2013 16:51:00 -0000 [thread overview]
Message-ID: <CAFiYyc297Ev4J5ETxwXM3jQuAjj4Gb20bF2XaUCOgxTdrfF_NA@mail.gmail.com> (raw)
In-Reply-To: <87txmwm0r9.fsf@sandifor-thinkpad.stglab.manchester.uk.ibm.com>
On Wed, Apr 24, 2013 at 5:00 PM, Richard Sandiford
<rdsandiford@googlemail.com> wrote:
> Richard Biener <richard.guenther@gmail.com> writes:
>> On Wed, Apr 24, 2013 at 4:29 PM, Richard Sandiford
>> <rdsandiford@googlemail.com> wrote:
>>> In other words, one of the reasons wide_int can't be exactly 1:1
>>> in practice is because it is clearing out these mistakes (GEN_INT
>>> rather than gen_int_mode) and missing features (non-power-of-2 widths).
>>
>> Note that the argument should be about CONST_WIDE_INT here,
>> not wide-int. Indeed CONST_WIDE_INT has the desired feature
>> and can be properly truncated/extended according to mode at the time we build it
>> via immed_wide_int_cst (w, mode). I don't see the requirement that
>> wide-int itself is automagically providing that truncation/extension
>> (though it is a possibility, one that does not match existing behavior of
>> HWI for CONST_INT or double-int for CONST_DOUBLE).
>
> I agree it doesn't match the existing behaviour of HWI for CONST_INT or
> double-int for CONST_DOUBLE, but I think that's very much a good thing.
> The model for HWIs at the moment is that you have to truncate results
> to the canonical form after every operation where it matters. As you
> proved in your earlier message about the plus_constant bug, that's easily
> forgotten. I don't think the rtl code is doing all CONST_INT arithmetic
> on full HWIs because it wants to: it's doing it because that's the way
> C/C++ arithmetic on primitive types works. In other words, the current
> CONST_INT code is trying to emulate N-bit arithmetic (for gcc runtime N)
> using a single primitive integer type. wide_int gives us N-bit arithmetic
> directly; no emulation is needed.
Ok, so what wide-int provides is integer values encoded in 'len' HWI
words that fit in 'precision' or more bits (and often in less). wide-int
also provides N-bit arithmetic operations. IMHO both are tied
too closely together. A give constant doesn't really have a precision.
Associating one with it to give a precision to an arithmetic operation
looks wrong to me and are a source of mismatches.
What RTL currently has looks better to me - operations have
explicitely specified precisions.
> If your point is that an arbitrary-precision wide_int could be used by
> other (non-rtl, and probably non-tree) clients, then I don't really
> see the need. We already have mpz_t for that. What we don't have,
> and what we IMO need, is something that performs N-bit arithmetic
> for runtime N. It seems better to have a single class that does
> that for us (wide_int), rather than scatter N-bit emulation throughout
> the codebase, which is what we do now.
mpz_t is not suitable here - it's way too expensive. double-int
was the "suitable" bit for now, but given it's host dependency and
inability to handle larger ints (VRP ...) the ability to use wide-ints
for this looks appealing.
Richard.
> Richard
next prev parent reply other threads:[~2013-04-24 15:13 UTC|newest]
Thread overview: 217+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-03 17:17 patch to fix Kenneth Zadeck
2012-10-03 20:47 ` Marc Glisse
2012-10-03 22:05 ` Kenneth Zadeck
2012-10-04 13:17 ` Marc Glisse
2012-10-04 15:19 ` Kenneth Zadeck
2012-10-04 16:55 ` Marc Glisse
2012-10-04 21:06 ` Marc Glisse
2012-10-04 23:02 ` Kenneth Zadeck
2012-10-05 7:05 ` Marc Glisse
2012-10-03 22:55 ` Mike Stump
2012-10-04 12:48 ` Richard Guenther
2012-10-04 13:55 ` patch to fix constant math Kenneth Zadeck
2012-10-04 16:58 ` Richard Guenther
2012-10-04 18:08 ` Kenneth Zadeck
2012-10-04 19:27 ` Richard Sandiford
2012-10-05 9:27 ` Richard Guenther
2012-10-05 9:29 ` Richard Guenther
2012-10-05 9:56 ` Richard Sandiford
2012-10-05 10:34 ` Richard Guenther
2012-10-05 11:24 ` Richard Sandiford
2012-10-05 11:42 ` Richard Guenther
2012-10-05 12:26 ` Richard Sandiford
2012-10-05 12:39 ` Richard Guenther
2012-10-05 13:11 ` Richard Sandiford
2012-10-05 13:18 ` Richard Sandiford
2012-10-05 13:53 ` Richard Guenther
2012-10-05 14:15 ` Richard Sandiford
2012-10-05 14:36 ` Richard Guenther
2012-10-05 14:41 ` Kenneth Zadeck
2012-10-05 14:53 ` Richard Sandiford
2012-10-05 13:49 ` Richard Guenther
2012-10-05 16:34 ` Kenneth Zadeck
2012-10-05 17:29 ` Richard Sandiford
2012-10-05 17:53 ` Kenneth Zadeck
2012-10-05 22:12 ` patch to fix constant math - first small patch Kenneth Zadeck
2012-10-05 22:48 ` patch to fix constant math - second " Kenneth Zadeck
2012-10-06 15:55 ` patch to fix constant math - third " Kenneth Zadeck
2012-10-08 9:08 ` Richard Guenther
2012-10-08 11:37 ` Kenneth Zadeck
2012-10-08 12:11 ` Richard Guenther
2012-10-08 19:43 ` Richard Sandiford
2012-10-09 15:10 ` patch to fix constant math - 4th patch - the wide-int class Kenneth Zadeck
2012-10-23 14:33 ` Richard Biener
2012-10-23 16:25 ` Kenneth Zadeck
2012-10-23 18:52 ` Lawrence Crowl
2012-10-23 19:27 ` Kenneth Zadeck
2012-10-23 20:51 ` Lawrence Crowl
2012-10-23 21:34 ` Kenneth Zadeck
2012-10-24 10:10 ` Richard Biener
2012-10-24 17:30 ` Mike Stump
2012-10-25 10:55 ` Richard Biener
2012-10-25 10:59 ` Kenneth Zadeck
2012-10-25 12:12 ` Richard Biener
2012-10-31 11:01 ` Richard Sandiford
2012-10-31 12:01 ` Richard Biener
2012-10-31 12:12 ` Richard Sandiford
2012-10-31 12:14 ` Richard Biener
2012-10-31 12:23 ` Richard Sandiford
2012-10-31 12:50 ` Richard Biener
2012-10-31 13:50 ` Richard Sandiford
2012-10-31 13:56 ` Richard Biener
2012-10-31 14:26 ` Kenneth Zadeck
2012-10-31 19:45 ` Mike Stump
2012-10-31 15:52 ` Kenneth Zadeck
2012-10-31 14:39 ` Kenneth Zadeck
2012-10-31 19:22 ` Mike Stump
2012-10-31 13:54 ` Kenneth Zadeck
2012-10-31 14:07 ` Richard Biener
2012-10-31 14:25 ` Kenneth Zadeck
2012-10-31 14:25 ` Richard Biener
2012-10-31 14:30 ` Kenneth Zadeck
2012-11-01 22:13 ` patch to fix constant math - 8th patch - tree-vrp.c Kenneth Zadeck
2012-11-01 22:28 ` Marc Glisse
2012-11-01 22:35 ` Kenneth Zadeck
2012-11-01 22:33 ` patch to fix constant math - 4th patch - wide-int.[ch] refresh Kenneth Zadeck
2012-11-01 22:36 ` Kenneth Zadeck
2012-11-30 16:46 ` patch to fix constant math - 4th patch - the wide-int class Kenneth Zadeck
2012-11-30 17:00 ` patch to fix constant math - 5th patch - the rtl level changes Kenneth Zadeck
2012-11-30 18:13 ` patch to add storage classes to wide int Kenneth Zadeck
2012-11-30 19:05 ` Kenneth Zadeck
2012-12-01 9:28 ` Richard Sandiford
2012-12-01 13:43 ` Kenneth Zadeck
2013-02-27 1:59 ` patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1 Kenneth Zadeck
2013-03-27 14:54 ` Richard Biener
2013-04-04 8:08 ` Kenneth Zadeck
2013-04-02 15:40 ` Richard Biener
2013-04-02 19:23 ` Kenneth Zadeck
2013-04-03 10:44 ` Richard Biener
2013-04-03 13:36 ` Kenneth Zadeck
2013-04-03 14:46 ` Richard Biener
2013-04-03 19:18 ` Kenneth Zadeck
2013-04-04 11:45 ` Richard Biener
2013-04-08 5:28 ` Comments on the suggestion to use infinite precision math for wide int Kenneth Zadeck
2013-04-08 10:32 ` Florian Weimer
2013-04-08 13:58 ` Kenneth Zadeck
2013-04-08 14:00 ` Robert Dewar
2013-04-08 14:12 ` Kenneth Zadeck
2013-04-08 14:41 ` Robert Dewar
2013-04-08 15:10 ` Kenneth Zadeck
2013-04-08 17:18 ` Robert Dewar
2013-04-08 17:22 ` Kenneth Zadeck
2013-04-08 19:14 ` Robert Dewar
2013-04-08 23:48 ` Lawrence Crowl
2013-04-09 1:22 ` Robert Dewar
2013-04-09 1:56 ` Kenneth Zadeck
2013-04-09 2:10 ` Robert Dewar
2013-04-09 7:06 ` Mike Stump
2013-04-09 8:20 ` Robert Dewar
2013-04-09 8:22 ` Kenneth Zadeck
2013-04-09 8:24 ` Robert Dewar
2013-04-09 12:42 ` Florian Weimer
2013-04-09 15:06 ` Robert Dewar
2013-04-09 16:16 ` Florian Weimer
2013-04-08 13:12 ` Richard Biener
2013-04-08 13:32 ` Kenneth Zadeck
2013-04-08 13:44 ` Robert Dewar
2013-04-08 14:26 ` Kenneth Zadeck
2013-04-08 14:35 ` Robert Dewar
2013-04-08 19:06 ` Richard Biener
2013-04-08 22:34 ` Lawrence Crowl
2013-04-09 9:47 ` Richard Biener
[not found] ` <CAGqM8fZ7NxiMnC6PTA8v6w_E6ZJ5HbjhJXzh-HAOJqaSx+7rnw@mail.gmail.com>
2013-04-10 9:44 ` Richard Biener
2013-04-10 17:43 ` Mike Stump
2013-04-10 17:53 ` Kenneth Zadeck
2013-04-08 23:46 ` Lawrence Crowl
2013-04-22 21:39 ` patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1 Richard Sandiford
2013-04-23 0:35 ` Richard Biener
2013-04-23 6:47 ` Richard Sandiford
2013-04-05 15:05 ` Kenneth Zadeck
2013-04-08 13:06 ` Richard Biener
2013-04-17 0:49 ` Kenneth Zadeck
2013-04-17 3:41 ` patch to fix constant math -5th patch, rtl Kenneth Zadeck
2013-04-24 13:25 ` Richard Biener
2013-04-24 13:37 ` Richard Sandiford
2013-04-24 14:18 ` Richard Biener
2013-04-24 14:34 ` Richard Sandiford
2013-04-24 14:37 ` Richard Biener
2013-04-24 14:53 ` Richard Sandiford
2013-04-24 15:07 ` Richard Biener
2013-04-24 15:13 ` Kenneth Zadeck
2013-04-24 15:45 ` Richard Sandiford
2013-04-24 16:51 ` Richard Biener [this message]
2013-04-24 18:24 ` Richard Sandiford
2013-05-03 11:28 ` Richard Biener
2013-05-03 12:38 ` Richard Sandiford
2013-05-03 12:53 ` Richard Biener
2013-05-03 13:50 ` Richard Sandiford
2013-05-03 14:27 ` Kenneth Zadeck
2013-04-25 8:38 ` Kenneth Zadeck
2013-05-03 11:34 ` Richard Biener
2013-05-03 11:50 ` Kenneth Zadeck
2013-05-03 12:12 ` Richard Biener
2013-05-03 12:31 ` Kenneth Zadeck
2013-05-03 12:40 ` Richard Biener
2013-05-03 14:09 ` Kenneth Zadeck
2013-05-03 12:48 ` Richard Sandiford
2013-05-03 13:06 ` Richard Biener
2013-05-03 13:23 ` Richard Sandiford
2013-05-03 15:32 ` Kenneth Zadeck
2013-04-24 14:57 ` Kenneth Zadeck
2013-04-24 15:49 ` Richard Biener
2013-04-24 17:11 ` Richard Sandiford
2013-05-03 11:19 ` Richard Biener
2013-05-03 12:46 ` Kenneth Zadeck
2013-05-03 13:02 ` Richard Biener
2013-05-03 14:34 ` Kenneth Zadeck
2013-05-02 17:22 ` Kenneth Zadeck
2013-04-17 7:34 ` patch to fix constant math - builtins.c - the first of the tree level patches for wide-int Kenneth Zadeck
2013-05-02 17:53 ` Kenneth Zadeck
2013-04-17 15:01 ` patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1 Kenneth Zadeck
2013-04-19 15:35 ` Richard Biener
2013-04-22 7:15 ` Kenneth Zadeck
2013-04-22 15:21 ` Richard Biener
2013-04-23 8:11 ` Kenneth Zadeck
2013-04-22 18:53 ` Kenneth Zadeck
2013-04-22 19:17 ` richard, i accidently pushed send rather than save, the previous email was not finished, just ignore it Kenneth Zadeck
2013-05-02 17:21 ` patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1 Kenneth Zadeck
2012-10-31 20:07 ` patch to fix constant math - 4th patch - the wide-int class Mike Stump
2012-10-23 18:10 ` Lawrence Crowl
2012-10-09 18:51 ` patch to fix constant math - patch 5 - the rest of the rtl stuff Kenneth Zadeck
2012-10-19 16:52 ` Richard Sandiford
2012-11-09 13:22 ` patch to fix constant math - third small patch Kenneth Zadeck
2012-10-08 9:07 ` patch to fix constant math - second " Richard Guenther
2012-11-08 18:14 ` Kenneth Zadeck
2012-11-26 15:31 ` Richard Biener
2013-02-27 0:28 ` patch to fix constant math - second small patch -patch ping for next stage 1 Kenneth Zadeck
2013-03-27 14:18 ` Richard Biener
2013-03-27 14:23 ` Kenneth Zadeck
2013-03-27 15:07 ` Richard Biener
2013-03-28 14:47 ` Kenneth Zadeck
2012-10-06 0:14 ` patch to fix constant math - first small patch Joseph S. Myers
2012-10-08 19:25 ` Kenneth Zadeck
2012-11-08 17:37 ` Kenneth Zadeck
2013-02-27 0:23 ` patch to fix constant math - first small patch - patch ping for the next stage 1 Kenneth Zadeck
2013-03-27 14:13 ` Richard Biener
2013-03-28 15:06 ` Kenneth Zadeck
2013-03-31 17:51 ` Kenneth Zadeck
2013-04-02 9:45 ` Richard Biener
2013-04-02 14:34 ` Kenneth Zadeck
2013-04-02 15:29 ` Richard Biener
2013-04-02 22:43 ` Kenneth Zadeck
2013-04-03 10:48 ` Richard Biener
2013-04-03 12:21 ` Kenneth Zadeck
2013-04-03 13:38 ` Richard Biener
2013-04-04 3:13 ` Kenneth Zadeck
2012-10-07 12:47 ` patch to fix constant math Richard Guenther
2012-10-07 13:11 ` Kenneth Zadeck
2012-10-07 13:19 ` Richard Guenther
2012-10-07 14:58 ` Kenneth Zadeck
2012-10-08 9:27 ` Richard Guenther
2012-10-08 15:01 ` Nathan Froyd
2012-10-08 15:11 ` Robert Dewar
2012-10-08 19:55 ` Richard Sandiford
2012-10-09 7:09 ` Richard Guenther
2012-10-08 16:18 ` Richard Guenther
2012-10-05 13:11 ` Kenneth Zadeck
2012-10-04 15:39 ` patch to fix Kenneth Zadeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAFiYyc297Ev4J5ETxwXM3jQuAjj4Gb20bF2XaUCOgxTdrfF_NA@mail.gmail.com \
--to=richard.guenther@gmail.com \
--cc=crowl@google.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=iant@google.com \
--cc=mikestump@comcast.net \
--cc=rdsandiford@googlemail.com \
--cc=zadeck@naturalbridge.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).