public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Martin Sebor <msebor@gmail.com>
To: Aldy Hernandez <aldyh@redhat.com>
Cc: Jakub Jelinek <jakub@redhat.com>,
	Martin Sebor <msebor@redhat.com>,
	GCC patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH] Convert strlen pass from evrp to ranger.
Date: Sat, 9 Oct 2021 10:19:49 -0600	[thread overview]
Message-ID: <217c8f4c-934f-f20f-b789-f19aa8a303f5@gmail.com> (raw)
In-Reply-To: <CAGm3qMXt5JWV60G5FS0i1z4AjogcB0UsE+YDwsYOqi21ci9qyQ@mail.gmail.com>

On 10/9/21 9:04 AM, Aldy Hernandez wrote:
> On Fri, Oct 8, 2021 at 6:52 PM Martin Sebor <msebor@gmail.com> wrote:
>>
>> On 10/8/21 9:12 AM, Aldy Hernandez via Gcc-patches wrote:
>>> The following patch converts the strlen pass from evrp to ranger,
>>> leaving DOM as the last remaining user.
>>
>> Thanks for doing this.  I know I said I'd work on it but I'm still
>> bogged down in my stage 1 work that's not going so great :(  I just
>> have a few minor comments/questions on the strlen change (inline)
>> but I am a bit concerned about the test failure.
>>
>>>
>>> No additional cleanups have been done.  For example, the strlen pass
>>> still has uses of VR_ANTI_RANGE, and the sprintf still passes around
>>> pairs of integers instead of using a proper range.  Fixing this
>>> could further improve these passes.
>>>
>>> As a further enhancement, if the relevant maintainers deem useful,
>>> the domwalk could be removed from strlen.  That is, unless the pass
>>> needs it for something else.
>>>
>>> With ranger we are now able to remove the range calculation from
>>> before_dom_children entirely.  Just working with the ranger on-demand
>>> catches all the strlen and sprintf testcases with the exception of
>>> builtin-sprintf-warn-22.c which is due to a limitation of the sprintf
>>> code.  I have XFAILed the test and documented what the problem is.
>>
>> builtin-sprintf-warn-22.c is a regression test for a false positive
>> in Glibc.  If it fails we'll have to deal with the Glibc failure
>> again, which I would rather avoid.  Have you checked to see if
>> Glibc is affected by the change?

Have you tested Glibc with the patch to see if the warning comes
back?  If it does there are other ways to suppress it, and I can
take care of it.  I just want us to avoid reintroducing it without
doing our due diligence first.

...
>> I think there still are quite a few calls to get_addr_stridx() and
>> get_addr() that don't pass in rvals.  I started doing this back in
>> the GCC 11 cycle but didn't finish the job.  Eventually, rvals
>> should be passed to all their callers (or they made class members
>> with a ranger member).  I mention this in case it has an effect on
>> the range propagation (since the pass also sets ranges).
> 
> Definitely.  You'll get even better ranges, though perhaps more false
> positives as discussed above :-/.

We want better ranges and better analysis.  Ultimately, it will
lead to better quality warnings, as has been one of the goals
behind Ranger.  If along the way it means a few false positives
in some edge cases, we'll deal with them.  I don't see this one
as a significant problem.

Martin

  reply	other threads:[~2021-10-09 16:19 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-08 15:12 Aldy Hernandez
2021-10-08 16:51 ` Martin Sebor
2021-10-08 17:56   ` Andrew MacLeod
2021-10-08 20:27     ` Martin Sebor
2021-10-09 15:04   ` Aldy Hernandez
2021-10-09 16:19     ` Martin Sebor [this message]
2021-10-09 17:59       ` Martin Sebor
2021-10-11  6:54         ` Aldy Hernandez
2021-10-09 18:47 ` Aldy Hernandez
2021-10-14 22:07   ` Martin Sebor
2021-10-14 23:45     ` Jeff Law
2021-10-15  0:47     ` Andrew MacLeod
2021-10-15 10:39       ` Aldy Hernandez
2021-10-17 22:49         ` Jeff Law
2021-10-18  7:43           ` Aldy Hernandez
2021-10-22 11:11         ` Aldy Hernandez
2021-10-29 20:04         ` Aldy Hernandez
2021-11-09  0:09         ` Jeff Law
2021-10-17 22:52 ` Jeff Law
2021-10-18  8:17   ` Aldy Hernandez
2021-10-20 20:58     ` Jeff Law
2021-10-21  7:42       ` Aldy Hernandez
2021-10-21 18:20         ` Jeff Law
2021-10-23 21:32           ` Jeff Law
2021-10-25  1:59             ` Jeff Law
2021-10-21 10:20       ` Richard Biener
2021-10-21 12:56         ` Aldy Hernandez
2021-10-21 13:14           ` Richard Biener
2021-10-21 13:30             ` Aldy Hernandez
2021-10-21 13:46               ` Richard Biener
2021-10-21 14:17                 ` Aldy Hernandez
2021-10-21 13:43           ` Jeff Law
2021-10-21 14:18             ` Aldy Hernandez
2021-10-25  2:15     ` Jeff Law
2021-10-25  4:42       ` Jeff Law
2021-10-25 11:27         ` Aldy Hernandez

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=217c8f4c-934f-f20f-b789-f19aa8a303f5@gmail.com \
    --to=msebor@gmail.com \
    --cc=aldyh@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=msebor@redhat.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).