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.