[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-02-19 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

--- Comment #17 from uros at gcc dot gnu.org ---
Author: uros
Date: Wed Feb 19 15:53:59 2014
New Revision: 207910

URL: http://gcc.gnu.org/viewcvs?rev=207910root=gccview=rev
Log:
PR target/59794
* config/i386/i386.c (type_natural_mode): Warn for ABI changes
only when -Wpsabi is enabled.

testsuite/ChangeLog:

PR target/59794
* gcc.target/i386/pr39162.c: Add dg-prune-output.
(dg-options): Remove -Wno-psabi.
* gcc.target/i386/59794-2.c: Ditto.
* gcc.target/i386/60205-1.c: Ditto.
* gcc.target/i386/sse-5.c: Ditto.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/i386/pr39162.c
trunk/gcc/testsuite/gcc.target/i386/pr59794-2.c
trunk/gcc/testsuite/gcc.target/i386/pr59794-3.c
trunk/gcc/testsuite/gcc.target/i386/pr60205-1.c
trunk/gcc/testsuite/gcc.target/i386/sse-5.c


[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-02-19 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

--- Comment #18 from uros at gcc dot gnu.org ---
Author: uros
Date: Wed Feb 19 16:50:22 2014
New Revision: 207912

URL: http://gcc.gnu.org/viewcvs?rev=207912root=gccview=rev
Log:
Backport from mainline
2014-02-19  Uros Bizjak  ubiz...@gmail.com

PR target/59794
* config/i386/i386.c (type_natural_mode): Warn for ABI changes
only when -Wpsabi is enabled.

testsuite/ChangeLog:

Backport from mainline
2014-02-19  Uros Bizjak  ubiz...@gmail.com

PR target/59794
* gcc.target/i386/pr39162.c: Add dg-prune-output.
(dg-options): Remove -Wno-psabi.
* gcc.target/i386/pr59794-2.c: Ditto.
* gcc.target/i386/sse-5.c: Ditto.


Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59794-1.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59794-2.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59794-3.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59794-4.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59794-5.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59794-6.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59794-7.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/config/i386/i386.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr39162.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/sse-5.c


[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-02-19 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|4.7.4   |4.8.3

--- Comment #19 from Uroš Bizjak ubizjak at gmail dot com ---
This is now implemented for 4.8.3 and 4.9, including -Wpsabi option.

No plan to backport these patches to 4.7.x.

FIXED for 4.8.3+.

[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-02-18 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

--- Comment #14 from Uroš Bizjak ubizjak at gmail dot com ---
(In reply to David Abdurachmanov from comment #13)
 Could we get this under -Wno-abi/-Wabi?
 
 We have 256-bit vectors [__vector(4) double], but no AVX available/enabled.
 We understand the affect on ABI compatibility and would like to disable such
 warnings.

This looks like a good suggestion to me. These warnings should be
enabled/disabled with -W{no-}psabi, since they in fact are psABI warnings.

The patch could be as simple as adding OPT_Wpsabi as the first argument to:

warning (0, AVX vector return without AVX enabled changes the ABI);

-Wpsabi is enabled by default, so there would be no user-visible default
changes.

HJ, what is your opinion?

[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-02-18 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

--- Comment #15 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to Uroš Bizjak from comment #14)
 The patch could be as simple as adding OPT_Wpsabi as the first argument to:
 
 warning (0, AVX vector return without AVX enabled changes the ABI);
 
 -Wpsabi is enabled by default, so there would be no user-visible default
 changes.
 
 HJ, what is your opinion?

It works for me.

[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-02-18 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

--- Comment #16 from Jakub Jelinek jakub at gcc dot gnu.org ---
If we go that route, I'd say it would need to be
  if (warning (OPT_Wpsabi, ...)))
warnedavx = true;
rather than
  warnedavx = true;
  warning (OPT_Wpsabi, ...);
so that if some functions have -Wpsabi warning disabled and other enabled, if
we decide to first warn on the one with the warning disabled, we warn on those
that have it enabled.


[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-02-14 Thread david.abdurachmanov at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

David Abdurachmanov david.abdurachmanov at gmail dot com changed:

   What|Removed |Added

 CC||david.abdurachmanov at gmail 
dot c
   ||om

--- Comment #13 from David Abdurachmanov david.abdurachmanov at gmail dot com 
---
Could we get this under -Wno-abi/-Wabi?

We have 256-bit vectors [__vector(4) double], but no AVX available/enabled. We
understand the affect on ABI compatibility and would like to disable such
warnings.


[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-01-17 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

--- Comment #11 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org ---
Author: hjl
Date: Fri Jan 17 18:51:27 2014
New Revision: 206727

URL: http://gcc.gnu.org/viewcvs?rev=206727root=gccview=rev
Log:
Consolidate ABI warning into type_natural_mode

gcc/

Backport from mainline
PR target/59794
* config/i386/i386.c (type_natural_mode): Add a bool parameter
to indicate if type is used for function return value.  Warn
ABI change if the vector mode isn't available for function
return value.
(ix86_function_arg_advance): Pass false to type_natural_mode.
(ix86_function_arg): Likewise.
(ix86_gimplify_va_arg): Likewise.
(function_arg_32): Don't warn ABI change.
(ix86_function_value): Pass true to type_natural_mode.
(ix86_return_in_memory): Likewise.
(ix86_struct_value_rtx): Removed.
(TARGET_STRUCT_VALUE_RTX): Likewise.

gcc/testsuite/

Backport from mainline
PR target/59794
* gcc.target/i386/pr39162.c (y): New __m256i variable.
(bar): Change return type to void.  Set y to x.
* gcc.target/i386/pr59794-1.c: New testcase.
* gcc.target/i386/pr59794-2.c: Likewise.
* gcc.target/i386/pr59794-3.c: Likewise.
* gcc.target/i386/pr59794-4.c: Likewise.
* gcc.target/i386/pr59794-5.c: Likewise.
* gcc.target/i386/pr59794-6.c: Likewise.
* gcc.target/i386/pr59794-7.c: Likewise.

Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/config/i386/i386.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr39162.c


[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-01-17 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

--- Comment #12 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org ---
Author: hjl
Date: Fri Jan 17 18:52:14 2014
New Revision: 206728

URL: http://gcc.gnu.org/viewcvs?rev=206728root=gccview=rev
Log:
Silence vector ABI change warnings for x86

Backport from mainline
PR target/59794
* c-c++-common/convert-vec-1.c: Also prune ABI change for
Linux/x86.
* g++.dg/cpp0x/constexpr-53094-2.C: Likewise.
* g++.dg/ext/attribute-test-1.C: Likewise.
* g++.dg/ext/attribute-test-2.C: Likewise.
* g++.dg/ext/attribute-test-3.C: Likewise.
* g++.dg/ext/attribute-test-4.C: Likewise.
* g++.dg/torture/pr38565.C: Likewise.
* gcc.dg/pr53060.c: Likewise.
* c-c++-common/scal-to-vec2.c: Add -msse2 for x86.
* c-c++-common/vector-compare-2.c: Likewise.
* gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: Likewise.
* g++.dg/conversion/simd1.C: Add -msse2 for x86.  Adjust
dg-message line number.

Modified:
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
branches/gcc-4_8-branch/gcc/testsuite/c-c++-common/convert-vec-1.c
branches/gcc-4_8-branch/gcc/testsuite/c-c++-common/scal-to-vec2.c
branches/gcc-4_8-branch/gcc/testsuite/c-c++-common/vector-compare-2.c
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/conversion/simd1.C
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-2.C
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/ext/attribute-test-1.C
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/ext/attribute-test-2.C
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/ext/attribute-test-3.C
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/ext/attribute-test-4.C
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/torture/pr38565.C
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/pr53060.c


[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes

2014-01-15 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

--- Comment #10 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org ---
Author: hjl
Date: Wed Jan 15 17:08:38 2014
New Revision: 206634

URL: http://gcc.gnu.org/viewcvs?rev=206634root=gccview=rev
Log:
Silence vector ABI change warnings for x86

PR target/59794
* c-c++-common/convert-vec-1.c: Also prune ABI change for
Linux/x86.
* g++.dg/cpp0x/constexpr-53094-2.C: Likewise.
* g++.dg/ext/attribute-test-1.C: Likewise.
* g++.dg/ext/attribute-test-2.C: Likewise.
* g++.dg/ext/attribute-test-3.C: Likewise.
* g++.dg/ext/attribute-test-4.C: Likewise.
* g++.dg/ext/pr56790-1.C: Likewise.
* g++.dg/torture/pr38565.C: Likewise.
* gcc.dg/pr53060.c: Likewise.
* c-c++-common/scal-to-vec2.c: Add -msse2 for x86.
* c-c++-common/vector-compare-2.c: Likewise.
* gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: Likewise.
* g++.dg/conversion/simd1.C: Add -msse2 for x86.  Adjust
dg-message line number.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/c-c++-common/convert-vec-1.c
trunk/gcc/testsuite/c-c++-common/scal-to-vec2.c
trunk/gcc/testsuite/c-c++-common/vector-compare-2.c
trunk/gcc/testsuite/g++.dg/conversion/simd1.C
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-2.C
trunk/gcc/testsuite/g++.dg/ext/attribute-test-1.C
trunk/gcc/testsuite/g++.dg/ext/attribute-test-2.C
trunk/gcc/testsuite/g++.dg/ext/attribute-test-3.C
trunk/gcc/testsuite/g++.dg/ext/attribute-test-4.C
trunk/gcc/testsuite/g++.dg/ext/pr56790-1.C
trunk/gcc/testsuite/g++.dg/torture/pr38565.C
trunk/gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c
trunk/gcc/testsuite/gcc.dg/pr53060.c