public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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


  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).