libm -fno-builtin

Wilco Dijkstra Wilco.Dijkstra@arm.com
Fri Aug 24 15:05:00 GMT 2018


jon@beniston.com wrote:

>Using -fno-builtin-memcpy doesn't prevent GCC from replacing a loop
>with a call to memcpy (likewise for memset). As Joesph said before, 
>-fno-tree-loop-distribute-patterns should be used for that. However, 
>this probably it isn't needed, as this only gets enabled at -O3 anyway, 
>and Newlib compiles with O2.
>
>Note that -fno-builtin does prevent this, oddly, but obviously 
>we don't want to use that.

That looks like a bug indeed since nobody will remember to use 
-fno-tree-loop-distribute-patterns.

However it is quite feasible to use -fno-builtin as an extra option on a few
files if they need it. Newlib might not need it today, but GLIBC has a few uses.

>Perhaps GCC should be a little bit more clever, and not try to use this 
>optimisation if the function called matches the name of the function being
compiled.

That would be even better. However that doesn't work in all cases, for
example GLIBC often uses different names to avoid namespace issues.

Wilco


    


More information about the Newlib mailing list