[FFmpeg-devel] [PATCH 2/2] configure: Enable GCC vectorization on ≥4.9

Hendrik Leppkes h.leppkes at gmail.com
Sat May 7 02:56:19 CEST 2016


On Sat, May 7, 2016 at 2:02 AM, James Almer <jamrial at gmail.com> wrote:
> On 5/6/2016 8:48 PM, Timothy Gu wrote:
>> On Fri, May 06, 2016 at 12:08:14PM +0200, Hendrik Leppkes wrote:
>>>
>>> Just to document it, this has caused build breakage in various
>>> scenarios, even in GCC 5.3 (6.1 not tested).
>>>
>>> The latest reported on IRC just today here:
>>> libavcodec/sbrdsp.c: In function 'sbr_neg_odd_64_c':
>>> libavcodec/sbrdsp.c:47:13: internal compiler error: in
>>> vect_analyze_data_ref_accesses, at tree-vect-data-refs.c:2596
>>>  static void sbr_neg_odd_64_c(float *x)
>>>
>>> There are various other cases which usually involve inline asm when
>>> building with SIMD (ie. --cpu=host) and the optimizer running out of
>>> registers, for example:
>>> libavcodec/x86/cabac.h:192:5: error: 'asm' operand has impossible constraints
>>>
>>> IMHO this feature is not quite ready to be enabled unconditionally in
>>> our code base, and we should re-evaluate this change.
>>
>> I don't have a problem with reverting this commit, but as James mentioned I do
>> prefer the bug to be reported to GCC if possible.
>>
>> Have you also considered the possibility to enable this feature only if inline
>> assembly is not enabled?
>
> Nobody disables inline asm when using GCC, so it'd be the same as removing tree
> vectorization altogether to begin with.
>
> This feature gives some nice speed boost on parts of the code that don't have
> hand written asm, so I'd very much rather keep it and try to get GCC to fix bugs
> on their compilers.

Fixing would be nice of course, but it should then only be enabled in
versions we know do not have problems, which is none right now.

- Hendrik


More information about the ffmpeg-devel mailing list