public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Andrew MacLeod <amacleod@redhat.com>
To: Richard Biener <richard.guenther@gmail.com>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH] PR tree-optimization/100781 - Do not calculate new values when evaluating a debug, statement.
Date: Tue, 1 Jun 2021 10:23:53 -0400	[thread overview]
Message-ID: <f631fdcf-9111-71bc-81e0-bf99a809fd2f@redhat.com> (raw)
In-Reply-To: <CAFiYyc2wUhFMP5Xy9e=USDfLbTjUbROTdkG0ka=8wvh9TcdzDQ@mail.gmail.com>

On 6/1/21 3:34 AM, Richard Biener wrote:
> On Tue, Jun 1, 2021 at 3:38 AM Andrew MacLeod via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
>> An ongoing issue  is the the order we evaluate things in can affect
>> decisions along the way. As ranger isn't a fully iterative pass, we can
>> sometimes come up with different results if back edges are processed in
>> different orders.
>>
>> One of the ways this can happen is when the cache is propagating
>> on-entry values for an SSA_NAME. It calculates outgoing edge values and
>> the gori-compute engine can flag ssa-names that were involved in a range
>> calculation that have not yet been initialized.  When the propagation
>> for the original name is done, it goes back and examines the "poor
>> values" and tries to quickly calculate a better range, and if it comes
>> up with one, immediately tries to go back  and update the location/range
>> gori_compute flagged.   This produces better ranges earlier.
>>
>> However, when we do this in different orders, we can get different
>> results.  We were processing the uses on is_gimple_debug statements just
>> like normal uses, and this would sometimes cause a difference in how
>> things were resolved.
>>
>> This patch adds a flag to enable/disable this attempt to look up new
>> values, and when range_of_expr is processing the use on a debug
>> statement, turns it off for the query.  This means the query will never
>> cause a new lookup, and this should resolve all the -fcompare-debug issues.
>>
>> Bootstrapped on x86_64-pc-linux-gnu, with no new regressions. Pushed.
> Please check if such fixes also apply to the GCC 11 branch.
>
> Richard.
>
>
I've checked both testcases against gcc11 release, and neither is an 
issue there.  Much of this was triggered by changes to the export list.  
That said, is there potential for it to surface? The potential is 
probably there.   We'd have to address it differently tho.  For the 
gcc11 release, since we always run in hybrid mode it doesn't really 
matter if ranger looks up ranges for debug statements... EVRP will still 
pick up what we use to get for them.  we could simply disable looking 
for contextual ranges for is_gimple_stmt and simply pick up the best 
known global/on-entry value available..   I can either provide a patch 
for that now, or deal with it if we ever get a PR.  I'm ok either way.

btw, when is the next point release? I added an infrastructure patch to 
trunk (https://gcc.gnu.org/pipermail/gcc-patches/2021-May/569884.html) 
to enable replacing the on-entry cache to deal with memory consumption 
issues like in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100299 .  I 
specifically put it in early before the other changes so that it could 
be directly applied to gcc11 as well, but I need to follow up with one 
of the replacements I have queued up to look at if we are interested in 
fixing this in gcc 11.  I'll bump the priority to try to hit the next 
release if thats the case.

Andrew


  reply	other threads:[~2021-06-01 14:24 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-01  1:32 Andrew MacLeod
2021-06-01  7:34 ` Richard Biener
2021-06-01 14:23   ` Andrew MacLeod [this message]
2021-06-02  7:29     ` Richard Biener
2021-06-08 14:48       ` Andrew MacLeod
2021-06-09 11:48         ` Richard Biener
2021-06-09 15:24           ` Andrew MacLeod
2021-06-10  5:59             ` Richard Biener

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=f631fdcf-9111-71bc-81e0-bf99a809fd2f@redhat.com \
    --to=amacleod@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --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).