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