[Bug target/59794] [4.7/4.8 Regression] i386 backend fails to detect MMX/SSE/AVX ABI changes
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
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
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
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
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
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
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
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
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
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