The sincos transformation does not take place on all platforms,
because the libc_has_function target hook disables it by default.

Current w64-mingw's math library supports sincos, sincosl and sincosf,
in 32- and 64-bit modes.  I suppose this has been this way for long,
also with mingw32 and cygwin.

This patch enables the sincos optimization on these platforms.

Tested with builds targeting mingw-w64, also regstrapped along with
other patches on x86_64-linux-gnu.  Ok to install?


for  gcc/ChangeLog

        * config/i386/cygming.h (TARGET_LIBC_HAS_FUNCTION): Enable
        sincos optimization.
---
 gcc/config/i386/cygming.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
index 1b1ea7d..82fc4d6 100644
--- a/gcc/config/i386/cygming.h
+++ b/gcc/config/i386/cygming.h
@@ -182,7 +182,7 @@ along with GCC; see the file COPYING3.  If not see
 #define MATH_LIBRARY ""
 
 #undef TARGET_LIBC_HAS_FUNCTION
-#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
+#define TARGET_LIBC_HAS_FUNCTION gnu_libc_has_function
 
 #define SIZE_TYPE (TARGET_64BIT ? "long long unsigned int" : "unsigned int")
 #define PTRDIFF_TYPE (TARGET_64BIT ? "long long int" : "int")

-- 
Alexandre Oliva, happy hacker
https://FSFLA.org/blogs/lxo/
Free Software Activist
GNU Toolchain Engineer

Reply via email to