public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Andrew MacLeod <amacleod@redhat.com>
To: Richard Biener <richard.guenther@gmail.com>
Cc: GCC <gcc@gcc.gnu.org>, Jeff Law <law@redhat.com>,
	Aldy Hernandez <aldyh@redhat.com>
Subject: Re: On-Demand range technology [3/5] - The Prototype
Date: Fri, 24 May 2019 15:50:00 -0000	[thread overview]
Message-ID: <cfba9e81-e327-60db-ebc1-f3844925278f@redhat.com> (raw)
In-Reply-To: <CAFiYyc04DXYqa+Gv-X6ZinpEFnnUk2od=N=2hD1KqTOX5uMOJw@mail.gmail.com>

On 5/23/19 9:10 AM, Richard Biener wrote:
> On Thu, May 23, 2019 at 3:29 AM Andrew MacLeod <amacleod@redhat.com> wrote:
>>
>> This aspect of symbolics would be handled by a relational/equivalence
>> processing engine that would be follow on work.  Using the same basic
>> model as ranges, each tree code is taught to understand the relation
>> between its operands, and then we can answer equivalency and relational
>> accurately as well.  It would be available for any pass to use
>> independent of ranges. I will expound upon that a bit in the future
>> directions section.
> While I agree that symbolic ranges are a complication and that most
> cases it currently handles are not "value-range" things I do not agree
> with the idea that we can simply remove handling them and deal
> with the fallout in some later point in the future.  Eric may also be
> able to show you "real" symbolic value-range magic.

sure, I'd love to see a case we can't get that having symbolics in the 
range helps with.  (note I see you guys have replied with an example.  
I'll reply there, but will note it is actually a relation issue, so my 
assertion stands)

And we aren't talking about utting this code in and someday getting 
around to it.   Equivalencies/relations are the very next thing to 
tackle,  and I expected at least a proof of concept as a requirement.  I 
just don't want to proceed with any follow up work until a direction is 
set for the core aspects.

> Note that symbolic ranges are already restricted to PLUS_EXPR
> and MINUS_EXPR (and NEGATE_EXPR I think).  There are
> also "symbolic" (non-integer constant) ranges like [&a, &a].
> I've never seen [&a, &MEM[&a + 4]] but we wouldn't reject those
> I think.
>
> You may have noticed that EVRP does not use symbolic ranges.

Other than for equivalences?  it appears to still track them via ranges 
to eliminate things like :

if (a == b && b == c)
      if (a == c)

    Intersecting
       int [c_7(D), c_7(D)]  EQUIVALENCES: { b_6(D) c_7(D) } (2 elements)
    and
       VARYING
    to
       int [c_7(D), c_7(D)]  EQUIVALENCES: { b_6(D) c_7(D) } (2 elements)

I noticed this is how it continues to handle relational problems, so 
they are there.

>
> As already said I'd like to see VRP go but obstackles are
> symbolic ranges and jump-threading (with Jeff promising
> to handle the jump-threading part in the past).
>
I also consider symbolics an obstacle, only in a different way :-)

Andrew

  parent reply	other threads:[~2019-05-24 15:50 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-23  1:29 Andrew MacLeod
2019-05-23 13:10 ` Richard Biener
2019-05-23 22:27   ` Eric Botcazou
2019-05-24  8:03     ` Toon Moene
2019-05-24  9:36     ` Richard Biener
2019-05-24 15:52       ` Andrew MacLeod
2019-05-24 15:50   ` Andrew MacLeod [this message]
2019-05-28 14:41   ` Jeff Law
2019-05-28 18:06     ` Aldy Hernandez
2019-05-29 13:11     ` Richard Biener
2019-05-31 15:36       ` Andrew MacLeod

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=cfba9e81-e327-60db-ebc1-f3844925278f@redhat.com \
    --to=amacleod@redhat.com \
    --cc=aldyh@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=law@redhat.com \
    --cc=richard.guenther@gmail.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).