CVSROOT:        /cvs
Module name:    src
Changes by:     m...@cvs.openbsd.org    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.

Reply via email to