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