[FFmpeg-devel] H.264 Regressions for x86_32/gcc 2.95.3

Loren Merritt lorenm
Fri Feb 8 15:15:00 CET 2008


On Fri, 8 Feb 2008, Michael Niedermayer wrote:
>
> There where many aligning bugs in gcc. One was that it ignored alignment
> directives for variables on the stack at least sometimes, we had a workaround
> for that which loren removed in r11875 (a wanrnig fix ironically). I do not
> know if this is related to the problem you have. Possibly r11875 just slows
> down the mmx code without really breaking sse*
> Another is that gcc couldnt align anything more than the alignment the
> stack had on entry (main() or for example avcodec_decode_video())

The workaround only provided 8 byte alignment, and can't be extended 
because there is no C type that requires more alignment on x86. Unless gcc 
obeys alignment attributes of user-defined types even when it ignores 
them on variables?

btw, it doesn't stop at 16. Due to cacheline split issues on intel cpus, 
some of the mc functions benefit from up to 64byte alignment of the 
intermediate arrays.

--Loren Merritt




More information about the ffmpeg-devel mailing list