Leo Famulari <l...@famulari.name> skribis: > On Sat, Nov 05, 2016 at 12:15:25AM +0100, Ludovic Courtès wrote:
[...] >> Instead, the knobs we have are (1) global flag to enable/disable each >> built-in function (like -fno-builtin-… does), and (2) an x86-specific >> knob to determine whether to use ‘movabs’ or not (‘-mmemcpy-strategy’ >> supposedly controls that, but ‘-mmemcpy-strategy=libcall:-1:noalign’ >> doesn’t seem to have any effect for instance.) > > Please correct me if I paraphrase the choices incorrectly: > (1) Completely disable the strcpy optimization for all architectures > (2) Ostensibly change how strcpy is optimized on x86, except the knob > seems to have no effect Correct. >> These knobs are not great because that would lead us to disable the >> optimization wholesale, which is not desirable. > > What are the costs of (1)? Should we report (2) upstream? -fno-builtin-{strcpy,memcpy} disables not just use of ‘movabs’ but also all the optimizations that GCC can make when the built-ins are being used (see the doc for ‘-mmemcpy-strategy’). It wouldn’t feel right to disable that completely. Ludo’.