On Wed, 2009-12-02 at 12:46 -0800, Roland Scheidegger wrote: > On 02.12.2009 18:33, José Fonseca wrote: > > I've seen strict aliasing assumption causing bugs in other gallium > > components. It seems endemic to our code. Unless we actively decidee to > > go and chase the strict aliasing bugs now we should add > > -fno-strict-aliasing to all our builds. > > Hmm, actually some of them (in mesa at least) seem to be really > unnecessary. Take the COPY_4FV macro for instance. I replaced that in a > simple test program (attached) to either just do direct assignment > without cast, or use memcpy instead.
That comment was probably true in 1999 -- but possibly not any longer... > The results are actually interesting, the comment says cast is done to > avoid going through fp registers, but looking in the assembly (at least > with optimization) that doesn't happen anyway, and the generated code is > actually nearly identical, but in fact it not only triggers > strict-aliasing warnings but doesn't work correctly (when compiled with > -O3 or similar parameters invoking -fstrict-aliasing). ... > Doesn't use 128bit sse moves but looks like an improvement... When using > no optimization code certainly gets much less readable and the memcpy > version will call glibc memcpy (which itself will still be optimized > hence probably faster despite the function call). > So I'll kill at least this one and just use _mesa_memcpy there, unless > there are good reasons not to. I think pretty much all compilers should > have builtin memcpy optimizations. I didn't realize COPY_4FV and friends were related to our strict aliasing problems -- if that's the case, let's kill or reimplement them straight away. Keith ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev