public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Hongtao Liu <crazylht@gmail.com>
To: Martin Sebor <msebor@gmail.com>
Cc: Segher Boessenkool <segher@kernel.crashing.org>,
	Hongtao Liu <hongtao.liu@intel.com>,
	 GCC Patches <gcc-patches@gcc.gnu.org>,
	Bill Schmidt <wschmidt@linux.ibm.com>,
	 David Edelsohn <dje.gcc@gmail.com>
Subject: Re: [PATCH] rs6000/test: Adjust some cases due to O2 vect [PR102658]
Date: Tue, 12 Oct 2021 10:31:44 +0800	[thread overview]
Message-ID: <CAMZc-bzXwXDiOdX4QcMMkA29_NiJqXEcfZeB6q_OH9naZANZjg@mail.gmail.com> (raw)
In-Reply-To: <d26a772e-fba7-85d1-d959-c11fd6f7969c@gmail.com>

On Tue, Oct 12, 2021 at 4:08 AM Martin Sebor via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> On 10/11/21 11:43 AM, Segher Boessenkool wrote:
> > On Mon, Oct 11, 2021 at 10:23:03AM -0600, Martin Sebor wrote:
> >> On 10/11/21 9:30 AM, Segher Boessenkool wrote:
> >>> On Mon, Oct 11, 2021 at 10:47:00AM +0800, Kewen.Lin wrote:
> >>>> - For generic test cases, it follows the existing suggested
> >>>> practice with necessary target/xfail selector.
> >>>
> >>> Not such a great choice.  Many of those tests do not make sense with
> >>> vectorisation enabled.  This should have been thought about, in some
> >>> cases resulting in not running the test with vectorisation enabled, and
> >>> in some cases duplicating the test, once with and once without
> >>> vectorisation.
> >>
> >> The tests detect bugs that are present both with and without
> >> vetctorization, so they should pass both ways.
> >
> > Then it should be tested both ways!  This is my point.
>
> Agreed.  (Most warnings are tested with just one set of options,
> but it's becoming apparent that the middle end ones should be
> exercised more extensively.)
>
> >
> >> That they don't
> >> tells us that that the warnings need work (they were written with
> >> an assumption that doesn't hold anymore).
> >
> > They were written in world A.  In world B many things behave
> > differently.  Transplanting the testcases from A to B without any extra
> > analysis will not test what the testcases wanted to test, and possibly
> > nothing at all anymore.
>
> Absolutely.
>
> >
> >> We need to track that
> >> work somehow, but simply xfailing them without making a record
> >> of what underlying problem the xfails correspond to isn't the best
> >> way.  In my experience, what works well is opening a bug for each
> >> distinct limitation (if one doesn't already exist) and adding
> >> a reference to it as a comment to the xfail.
> >
> > Probably, yes.
> >
> >>> But you are just following established practice, so :-)
> >
> > I also am okay with this.  If it was decided x86 does not have to deal
> > with these (generic!) problems, then why should we do other people's
> > work?
>
> I don't know that anything was decided.  I think those changes
> were made in haste, and (as you noted in your review of these
> updates to them), were incomplete (missing comments referencing
> the underlying bugs or limitations).  Now that we've noticed it
> we should try to fix it.  I'm not expecting you (or Kwen) to do
> other people's work, but it would help to let them/us know that
> there is work for us to do.  I only noticed the problem by luck.
>
> >>>> -  struct A1 a = { 0, { 1 } };   // { dg-warning
> >>>> "\\\[-Wstringop-overflow" "" { target { i?86-*-* x86_64-*-* } } }
> >>>> +  struct A1 a = { 0, { 1 } };   // { dg-warning
> >>>> "\\\[-Wstringop-overflow" "" { target { i?86-*-* x86_64-*-* powerpc*-*-*
> >>>> } } }
> >>
> >> As I mentioned in the bug, when adding xfails for regressions
> >> please be sure to reference the bug that tracks the underlying
> >> root cause.]
> >
> > You are saying this to whoever added that x86 xfail I hope.
>
> In general it's an appeal to both authors and reviewers of such
> changes.  Here, it's mostly for Hongtao who apparently added all
> these undocumented xfails.
>
> >> There may be multiple problems, and we need to
> >> identify what it is in each instance.  As the author of
> >> the tests I can help with that but not if I'm not in the loop
> >> on these changes (it would seem prudent to get the author's
> >> thoughts on such sweeping changes to their work).
> >
> > Yup.
> >
> >> I discussed one of these failures with Hongtao in detail at
> >> the time autovectorization was being enabled and made the same
> >> request then but I didn't realize the problem was so pervasive.
> >>
> >> In addition, the target-specific conditionals in the xfails are
> >> going to be difficult to maintain.
> >
> > It is a cop-out.  Especially because it makes no comment why it is
> > xfailed (which should *always* be explained!)
> >
> >> It might be okay for one or
> >> two in a single test but for so many we need a better solution
> >> than that.  If autovectorization is only enabled for a subset
> >> of targets then a solution might be to add a new DejagGNU test
> >> for it and conditionalize the xfails on it.
> >
> > That, combined with duplicating these tests and still testing the
> > -fno-vectorization situation properly.  Those tests tested something.
> > With vectorisation enabled they might no longer test that same thing,
> > especially if the test fails now!
>
> Right.  The original autovectorization change was made either
> without a full analysis of its impact on the affected warnings,
> or its impact wasn't adequately captured (either in the xfails
> comments or by opening bugs for them).  Now that we know about
> this we should try to fix it.  The first step toward that is
> to review the xfailed test cases and for each add a comment with
> the bug that captures its root cause.
>
> Hongtao, please let me know if you are going to work on that.
I will make a copy of the tests to test the -fno-tree-vectorize
scenario(the original test).
For the xfails, they're analyzed and recorded in pr102462/pr102697,
sorry for not adding comments to them.
The root causes for those xfails are divided into 2 categories:

1. All accesses are out of bound, and after vectorization, there are
some warnings missing.(Because there is only 1 access after
vectorization, 2 accesses w/o vectorization, and diagnostic is based
on access).
2. Part of accesses are inbound, part of accesses are out of bound,
and after vectorization, the warning goes from out of bound line to
inbound line.

for pr102697, it looks like the testcase is not well written.
>
> Martin



-- 
BR,
Hongtao

  reply	other threads:[~2021-10-12  2:25 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-11  2:47 Kewen.Lin
2021-10-11 15:30 ` Segher Boessenkool
2021-10-11 16:23   ` Martin Sebor
2021-10-11 17:43     ` Segher Boessenkool
2021-10-11 20:07       ` Martin Sebor
2021-10-12  2:31         ` Hongtao Liu [this message]
2021-10-12 15:49           ` Martin Sebor
2021-10-12 16:18             ` Segher Boessenkool
2021-10-12 17:15               ` Martin Sebor
2021-10-12 17:45                 ` Jeff Law
2021-10-12 18:01                 ` Segher Boessenkool
2021-10-13  3:34             ` Hongtao Liu
2021-10-13  6:29               ` Hongtao Liu
2021-10-13  7:43                 ` Kewen.Lin
2021-10-13 14:36                   ` Martin Sebor
2021-10-14  7:11                   ` [PATCH] Adjust testcase for O2 vectorization liuhongt
2021-10-14  7:52                     ` Bernhard Reutner-Fischer
2021-10-14 10:56                     ` Kewen.Lin
2021-10-15  7:11                       ` Kewen.Lin
2021-10-18  4:47                         ` Hongtao Liu
2021-10-15 15:37                     ` Martin Sebor
2021-10-18  4:38                       ` Hongtao Liu
2021-10-18 15:11                         ` Martin Sebor
2021-10-19  9:03                           ` liuhongt
2021-10-20 11:34                             ` Christophe Lyon
2021-10-21  1:20                               ` Hongtao Liu
2021-10-21  2:06                                 ` Hongtao Liu
2021-10-21  2:07                                   ` Hongtao Liu
2021-10-12 18:11         ` [PATCH] rs6000/test: Adjust some cases due to O2 vect [PR102658] Segher Boessenkool

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=CAMZc-bzXwXDiOdX4QcMMkA29_NiJqXEcfZeB6q_OH9naZANZjg@mail.gmail.com \
    --to=crazylht@gmail.com \
    --cc=dje.gcc@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hongtao.liu@intel.com \
    --cc=msebor@gmail.com \
    --cc=segher@kernel.crashing.org \
    --cc=wschmidt@linux.ibm.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).