On Sat, Oct 17, 2015 at 10:25 PM, Michael Niedermayer <mich...@niedermayer.cc> wrote: > On Sat, Oct 17, 2015 at 09:30:01PM -0400, Ganesh Ajjanagadde wrote: >> Commit 3a0a2f33a6c955823fa4fb12c0b49cd29a496659 claims large performance >> advantages for AV_QSORT over libc's qsort. The reason is that I suspect >> that libc's qsort (at least on non LTO builds, like the typical FFmpeg >> config) >> can't inline the comparison callback: >> https://stackoverflow.com/questions/5290695/is-there-any-way-a-c-c-compiler-can-inline-a-c-callback-function. >> AV_QSORT has two things going for it: >> 1. The guaranteed inlining of qsort itself. This yields a negligible >> boost that may be ignored. >> 2. The more serious possibility of potentially allowing the comparison >> function to be inlined - this is likely responsible for the large boosts >> reported. >> >> There is a comment explaining that this is a place that could use some >> performance improvement. Thus AV_QSORT is used to achieve that. >> >> Benchmarks deemed unnecessary due to existing claims about AV_QSORT. >> Tested with FATE. >> >> Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> >> --- >> libavcodec/bitstream.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) > > LGTM > > thx
Pushed, thanks. Will create another patch to replace the remainder of the qsort with AV_QSORT. Finally, an (optional) patch adding inline/av_always_inline to the compare functions - otherwise (at least on -O2, other compilers maybe) the compare functions won't be inlined. > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > The educated differ from the uneducated as much as the living from the > dead. -- Aristotle > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel