On Mon, May 27, 2013 at 11:15 AM, Alexander Ivchenko <aivch...@gmail.com> wrote: > Hi, > > While discussing the issue with the command line option for sincos here: > http://gcc.1065356.n5.nabble.com/PATCH-bionic-Add-foptimize-sincos-tp940918.html > > Richard wrote: >> 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. > > This patch is related to that idea: in the target hook > libc_has_function we can check whether > the compiler should generate calls to a particular function or not. > The command line support for > each function could be the next step. > > Could you please take a look?
I don't see how a target hook is required for the command-line idea. Targets already have a perfectly working way of changing the default of a command-line option. Richard. > thanks > Alexander > > 2013/4/23 Alexander Ivchenko <aivch...@gmail.com>: >> *ping* >> >> thanks >> Alexander >> >> 2013/3/28 Alexander Ivchenko <aivch...@gmail.com>: >>> Hi, >>> >>> 4.8 is now branched, lets come back to the discussion that we had >>> before. I updated the patch a little >>> bit since we now have linux-protos.h and linux-android.c files. >>> >>> I tried to preserve the avaiability of c99 for all targets, but it's >>> pretty difficult, because we are changing >>> the defaults. Passing an empty string as second argument doesn't look >>> very good, but on the other hand >>> the user has one clear way for checking the presence of a certain >>> function. But of course we can create >>> another function, that will call targetm.libc_has_function >>> (function_class, "") within itself. >>> >>> best regards, >>> Alexander >>> >>> 2013/1/7 Joseph S. Myers <jos...@codesourcery.com>: >>>> On Fri, 21 Dec 2012, Alexander Ivchenko wrote: >>>> >>>>> Hi, >>>>> >>>>> Thank you very much for your input! Please, take a look at the updated >>>>> version: >>>>> I fixed coding style, moved documentation for TARGET_LIBC_HAS_FUNCTION >>>>> to target.def. >>>>> Removed TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS and all their >>>>> influence and moved the implementation of linux_libc_has_function to >>>>> host-linux.c. >>>>> I changed the defaults: now it is assumed that we have C99 runtime, >>>>> but no sincos. I updated all needed gcc/config/*.h. But 'm not sure in >>>>> this part, >>>>> cause I don't have the opportunity to test it properly... >>>> >>>> This patch seems mostly plausible, though there are various places that >>>> call targetm.libc_has_function with and empty string as second argument, >>>> that should be naming the specific function instead. I haven't reviewed >>>> the details, and at this development stage I think it will need to wait >>>> until after 4.8 branches. >>>> >>>> -- >>>> Joseph S. Myers >>>> jos...@codesourcery.com