[FFmpeg-devel] [FFmpeg-cvslog] avutil/mem: Optimize fill32() by unrolling and using 64bit

Carl Eugen Hoyos ceffmpeg at gmail.com
Mon Jan 21 00:55:55 EET 2019


2019-01-20 23:04 GMT+01:00, Hendrik Leppkes <h.leppkes at gmail.com>:
> On Sun, Jan 20, 2019 at 10:38 PM Carl Eugen Hoyos <ceffmpeg at gmail.com>
> wrote:
>>
>> 2019-01-20 22:22 GMT+01:00, Michael Niedermayer <git at videolan.org>:
>> > ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> |
>> > Thu
>> > Jan 17 22:35:10 2019 +0100| [12b1338be376a3e5fb606d9fe41b58dc4a9e62c7] |
>> > committer: Michael Niedermayer
>> >
>> > avutil/mem: Optimize fill32() by unrolling and using 64bit
>> >
>> > Reviewed-by: Marton Balint <cus at passwd.hu>
>> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
>> >
>> >> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=12b1338be376a3e5fb606d9fe41b58dc4a9e62c7
>> > ---
>> >
>> >  libavutil/mem.c | 12 ++++++++++++
>> >  1 file changed, 12 insertions(+)
>> >
>> > diff --git a/libavutil/mem.c b/libavutil/mem.c
>> > index 6149755a6b..88fe09b179 100644
>> > --- a/libavutil/mem.c
>> > +++ b/libavutil/mem.c
>> > @@ -399,6 +399,18 @@ static void fill32(uint8_t *dst, int len)
>> >  {
>> >      uint32_t v = AV_RN32(dst - 4);
>> >
>> > +#if HAVE_FAST_64BIT
>>
>> I suspect this should be !X86_32
>
> fast_64bit is set on any native 64-bit platform.

I know, this is the reason for my question.

> If you can prove that its faster on some 32-bit
> platforms as well, numbers shall be required.

Really? Well, this was the reason for my question
above.
Note that last time it was claimed that "all 32-bit
platforms are slower", it turned out to be wrong
(or at least unreproducible).

Carl Eugen


More information about the ffmpeg-devel mailing list