CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2011/11/24 22:21:44
Modified files:
gnu/gcc/gcc : builtins.c
Log message:
Allow MD backend to prevent the optimization of a bcopy() or memmove() of
size 1 (the size being known at compile-time) into an inline mempcpy()
expansion, which will in turn expand into a byte load and store operation.
This expansion loses precious address alignment information at some point
(because everybody knows that you can read a byte from any address, right?),
and this loses bigtime on strict alignment platforms which lack the ability
to accesse bytes directly, such as alpha (unless compiling with -mbwx and
runnning on a BWX-capable cpu).
An example of such call with size 1 is lib/libkvm/kvm.c line 780.