[FFmpeg-devel] [FFmpeg-cvslog] r11100 - in trunk/libavcodec/i386: cavsdsp_mmx.c dsputil_mmx.c dsputil_mmx.h h264dsp_mmx.c mpegvideo_mmx.c vc1dsp_mmx.c

Loren Merritt lorenm
Sat Dec 1 19:57:17 CET 2007


On Sat, 1 Dec 2007, Uoti Urpala wrote:
> On Fri, 2007-11-30 at 17:56 -0700, Loren Merritt wrote:
>>
>> Benchmarks (of x264 not ffmpeg, but they should still be relevant):
>>
>> x86_64 (Core2)
>> speed  exe size  version
>> -2.0%   698928   shared
>> -1.3%   693584   shared -Bsymbolic
>> -1.3%   673136   shared -fvisibility=hidden
>> -0.9%   673104   shared -Bsymbolic -fvisibility=hidden
>> +0      650208   static
>>
>> x86_32 (Core2)
>> speed  exe size  version
>> -3.2%   736807   shared pic
>> -2.8%   732071   shared pic -Bsymbolic
>> -2.7%   715687   shared pic -fvisibility=hidden
>> -2.7%   715687   shared pic -Bsymbolic -fvisibility=hidden
>> +0      694232   shared non-pic
>> +0      660008   static
>
> Why do the results with both switches differ from just -fvisibility on
> AMD64 but not on 32-bit?

I don't know where the speed difference comes from. A disassembly of 
those two x86_64 versions shows no differences in instructions, except 
for two functions and one data struct that are in the api and also used 
internally. But those functions aren't speed-critical.

> It would be interesting to see the results with full visibility
> information, but I guess you don't have that available. It should give
> for each access the advantage that adding -fvisibility gives over just
> -Bsymbolic for accesses to symbols defined in the same file, so the
> extra benefit would depend on how many uses there are of non-static
> symbols defined in the same file vs symbols defined in another file.

What is full visibility information?
Why does -fvisibility apply only to symbols uses in the same file, and 
what is the alternative that applies to all symbols?

AFAICT, x264's visibility situation is very simple: One pragma in x264.h 
to mark the api as public, and gcc -fvisibility to mark everything else as 
hidden.

--Loren Merritt




More information about the ffmpeg-devel mailing list