From: Andrew MacLeod <amacleod@redhat.com>
To: Richard Biener <richard.guenther@gmail.com>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>,
"hernandez, aldy" <aldyh@redhat.com>,
Jakub Jelinek <jakub@redhat.com>,
Jeff Law <jeffreyalaw@gmail.com>
Subject: Re: RFC - VRP1 default mode
Date: Fri, 28 Oct 2022 09:43:10 -0400 [thread overview]
Message-ID: <44fdc256-0326-0859-98bf-5ceb89578658@redhat.com> (raw)
In-Reply-To: <CAFiYyc2toH0s63YVAWQUiEMvjmG6XSxB2ngg2Lb6a=+CVkh8QA@mail.gmail.com>
On 10/28/22 03:17, Richard Biener wrote:
> On Wed, Oct 26, 2022 at 4:24 PM Andrew MacLeod <amacleod@redhat.com> wrote:
>> Figured I would ask what you guys think of making ranger the default for
>> the VRP1 pass now.
>>
>> With partial equivalences and the other bits I checked in the past few
>> weeks I'm not aware of much that the legacy VRP pass gets that ranger
>> doesn't. The only exception to that which I am aware of is the trick
>> played with the unreachable edges to set global ranges, but that is done
>> in the DOM passes now anyway... so it just happens slightly later in the
>> optimization cycle.
> Note DOM should go away at some point. Why can this not happen during
> ranger driven VRP?
I have been working on that for the last 2 days. Turns out VRP1 can
remove builtin_unreachable from the
if (X)
__builtin_unreachable ()
idiom and set the appropriate global ranges, but it has to leave those
with 2 ssa-names:
if (a_1 != b_2)
__builtin_unreachable()
until the second pass of VRP or we lose the relationship between a_1 and
b_2. That triggers some failures. Specifically a vectorizor fail
because it cant be sure that the start and end point are not the same
without the condition in the IL. Trying to store global relations over
multiple passes would be problematic at this stage of development, so I
don't see a problem with leaving it that way.
bultin_unreachables() from switches get removed during the second pass
of switch-conversion... which I presume remains OK.
Anyway, thats pretty much under control. Patch probably coming later today.
>> There is one test case that needs adjustment for
>> that which was just checking for a mask in DOM2
>> (gcc.dg/tree-ssa/pr107009.c). At this point I have not aware of
>> anything that Id be concerned about, and the testsuite seems to run
>> cleanly.
> Did you enable Ada? The only feature I don't see implemented is
> symbolic range handling which boils down to general base + constant offset
> range endpoints (that's what symbolic ranges allow). That area was
> specifically improved to optimize range checks emitted by the Ada frontend
> but IIRC also applies to fortran -frange-check (not sure about test coverage
> of that).
I get a clean testsuite run configured and bootstrapped with
--enable-languages=c,c++,go,fortran,ada,obj-c++,jit --enable-host-shared
Is there a PR or specific tests in either fortran or ada for those
improvements? ie, something specific I should check for? Part of rangers
point is to be able to do symbolic relationships without storing the
symbolic in the range, just picking it up from the IL as needed.
Andrew
next prev parent reply other threads:[~2022-10-28 13:43 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-26 14:24 Andrew MacLeod
2022-10-26 14:59 ` Jeff Law
2022-10-28 7:17 ` Richard Biener
2022-10-28 13:43 ` Andrew MacLeod [this message]
2022-10-28 13:46 ` Richard Biener
2022-10-28 13:59 ` Andrew MacLeod
2022-10-28 14:14 ` Richard Biener
2022-10-28 14:33 ` Andrew MacLeod
2022-10-28 17:45 ` Eric Botcazou
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=44fdc256-0326-0859-98bf-5ceb89578658@redhat.com \
--to=amacleod@redhat.com \
--cc=aldyh@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jakub@redhat.com \
--cc=jeffreyalaw@gmail.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).