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.

> 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.

> 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?

> >>-  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.

> 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!

Thanks,


Segher

Reply via email to