[FFmpeg-devel] [PATCH] enable auto vectorization for gcc 7 and higher

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Jul 28 00:33:45 EEST 2022


Hendrik Leppkes:
> On Wed, Jul 27, 2022 at 7:39 PM James Almer <jamrial at gmail.com> wrote:
>>
>> On 7/27/2022 2:34 PM, Swinney, Jonathan wrote:
>>> I recognize that this patch is going to be somewhat controversial. I'm submitting it mostly to see what the opinions are and evaluate options. I am working on improving performance for aarch64. On that architecture, there are fewer hand written assembly implementations of hot functions than there are for x86_64 and allowing gcc to auto-vectorize yields noticeable improvements.
>>>
>>> Gcc vectorization has improved recently and it hasn't been evaluated on the mailing list for a few years. This is the latest discussion I found in my searches: http://ffmpeg.org/pipermail/ffmpeg-devel/2016-May/193977.html
>>
>> Every time this was done, it was inevitably reverted after complains and
>> crash reports started piling up because gcc can't really handle all the
>> inline code our codebase has, among other things.
>>
> 
> No need to wait for issues, I just tested, and the same issues still
> persist that have existed for years with GCC now. They don't seem to
> care to make it compatible with inline asm, which might be fair
> enough, but it means it just can't work here.
> 

Have the GCC devs been informed of this issue?

> In file included from libavcodec/cabac_functions.h:49,
>                  from libavcodec/h264_cabac.c:36:
> libavcodec/h264_cabac.c: In function 'ff_h264_decode_mb_cabac':
> libavcodec/x86/cabac.h:199:5: error: 'asm' operand has impossible constraints
> 
> GCC 11.3, configure --cpu=haswell, mingw32
> 
> So this is a NACK. It just flat out breaks builds.
> 
> - Hendrik


More information about the ffmpeg-devel mailing list