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