On Fri, May 24, 2013 at 02:10:18PM +0200, Richard Biener wrote: > That's a pretty awful option name for one that makes us assume the target > C library has a sincos function. > > I'd rather think about a way to specify, for all known builtins, whether GCC > should generate calls to such function where they are not in the source > program. That is, similar to how we have -f[no-]builtin-FOO introduce > -f[no-]libc-FOO (with a better name for 'libc'?). That way there would be > a way to specify that -floop-distribute-patterns should not produce calls > to memset () for example.
Yeah. Or we could be more aggressive at producing stpcpy, mempcpy etc. calls where it could be beneficial and have a way to disable that. What we currently do for stpcpy is c/c-decl.c (merge_decl) and cp/decl.c (duplicate_decls) has code that if not -fno-builtin-stpcpy and a compatible prototype is seen for stpcpy, then we allow it to be generated implicitly (set_builtin_decl_implicit_p (fncode, true);). Yeah, we could do the same for sincos, I bet most of the people don't prototype sin or cos themselves but include <math.h>, but in all cases it means the compiler will do it only if stpcpy resp. sincos is actually prototyped in the headers (right feature test macros for that). Jakub