From: Kenneth Zadeck <zadeck@naturalbridge.com>
To: Richard Biener <rguenther@suse.de>
Cc: Richard Sandiford <rdsandiford@googlemail.com>,
gcc-patches <gcc-patches@gcc.gnu.org>,
Mike Stump <mikestump@comcast.net>,
r.sandiford@uk.ibm.com
Subject: Re: wide-int branch now up for public comment and review
Date: Wed, 28 Aug 2013 13:11:00 -0000 [thread overview]
Message-ID: <521DF688.6060204@naturalbridge.com> (raw)
In-Reply-To: <alpine.LNX.2.00.1308281040230.20077@zhemvz.fhfr.qr>
>>> Note that the bits above the precision are not defined and the
>>> algorithms used here are careful not to depend on their value. In
>>> particular, values that come in from rtx constants may have random
>>> bits.
> Which is a red herring. It should be fixed. I cannot even believe
> that sentence given the uses of CONST_DOUBLE_LOW/CONST_DOUBLE_HIGH
> or INTVAL/UINTVAL. I don't see accesses masking out 'undefined' bits
> anywhere.
Richi,
you asked for the entire patch as a branch so that you could look at the
whole picture.
It is now time for you to do that. I understand it is very large and
it will take some time for you to get your head around the whole
thing. But remember this:
The vast majority of the clients are dealing with intermediate code that
has explicit promotions. Not only the rtl level, but the majority of
the tree level takes inputs that have explicit precisions that have been
matched and wants to see an explicit precision result. For this code,
doing the fixed precision thing where you do not ever ask about what is
behind the curtain is a very good match.
However, there are parts of the compiler, all within the tree or gimple
level, that do not have this view. For this, there are two templates
export an interface that behaves in a manner very similar to what
double-int does when the precision was smaller than 128 bits. (we
discovered a large number of bugs when using double int for timode
because they did make an infinite precision assumption, but that is
another story.) All numbers are converted to signed numbers that are
extended based on their input type and the math is performed in a large
enough field so that they never push near the end. We know what the
end is because we sniff the port.
At this point we looked at the pass we were converting and we used the
appropriate implementation that match the style of coding and the
algorithm. i.e. we made no substantive changes. As mentioned in my
earlier mail, i plan to change in the future tree-ssa-ccp to use the
fixed precision form, but this is a change that is motivated by being
able to find more constants with the proper representation than what is
beautiful. But this is the only case where i think the rep should be
substantially changed.
I know you find the fixed precision stuff unappealing. But the truth
is that you wanted us to make this patch so that it did as little damage
to the way the compiler worked as possible and given that so much of the
compiler actually does fixed precision math, this is the path of least
resistance.
If it is reasonable to change the rtl, we may change that, but the truth
is that the clients never see this so it is not as much of an issue as
you are making it. Now you can see all of the clients, see this for
yourself.
Kenny
next prev parent reply other threads:[~2013-08-28 13:09 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-13 20:57 Kenneth Zadeck
2013-08-22 8:25 ` Richard Sandiford
2013-08-23 15:03 ` Richard Sandiford
2013-08-23 21:01 ` Kenneth Zadeck
2013-08-24 10:44 ` Richard Sandiford
2013-08-24 13:10 ` Richard Sandiford
2013-08-24 18:16 ` Kenneth Zadeck
2013-08-25 7:27 ` Richard Sandiford
2013-08-25 13:21 ` Kenneth Zadeck
2013-08-24 21:22 ` Kenneth Zadeck
2013-08-24 0:03 ` Mike Stump
2013-08-24 1:59 ` Mike Stump
2013-08-24 3:34 ` Mike Stump
2013-08-24 9:04 ` Richard Sandiford
2013-08-24 20:46 ` Kenneth Zadeck
2013-08-25 10:52 ` Richard Sandiford
2013-08-25 15:14 ` Kenneth Zadeck
2013-08-26 2:22 ` Mike Stump
2013-08-26 5:40 ` Kenneth Zadeck
2013-08-28 9:11 ` Richard Biener
2013-08-29 13:34 ` Kenneth Zadeck
2013-08-25 18:12 ` Mike Stump
2013-08-25 18:57 ` Richard Sandiford
2013-08-25 19:59 ` Mike Stump
2013-08-25 20:11 ` Mike Stump
2013-08-25 21:38 ` Joseph S. Myers
2013-08-25 21:53 ` Mike Stump
2013-08-28 9:06 ` Richard Biener
2013-08-28 9:51 ` Richard Sandiford
2013-08-28 10:40 ` Richard Biener
2013-08-28 11:52 ` Richard Sandiford
2013-08-28 12:04 ` Richard Biener
2013-08-28 12:32 ` Richard Sandiford
2013-08-28 12:49 ` Richard Biener
2013-08-28 16:58 ` Mike Stump
2013-08-28 21:15 ` Kenneth Zadeck
2013-08-29 3:18 ` Mike Stump
2013-08-28 16:08 ` Mike Stump
2013-08-29 7:42 ` Richard Biener
2013-08-29 19:34 ` Mike Stump
2013-08-30 8:51 ` Richard Biener
2013-09-01 19:26 ` Richard Sandiford
2013-09-05 21:00 ` Richard Sandiford
2013-09-06 0:10 ` Mike Stump
2013-08-28 13:11 ` Kenneth Zadeck [this message]
2013-08-29 0:15 ` Kenneth Zadeck
2013-08-29 9:13 ` Richard Biener
2013-08-29 12:38 ` Kenneth Zadeck
2013-08-24 18:42 ` Florian Weimer
2013-08-24 19:48 ` 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=521DF688.6060204@naturalbridge.com \
--to=zadeck@naturalbridge.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=mikestump@comcast.net \
--cc=r.sandiford@uk.ibm.com \
--cc=rdsandiford@googlemail.com \
--cc=rguenther@suse.de \
/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).