[FFmpeg-devel] [PATCH] configure: disable the new optimizer in Visual Studio 2015 Update 3

Kacper Michajlow kasper93 at gmail.com
Mon Jul 4 04:53:52 EEST 2016


2016-07-03 23:39 GMT+02:00 Hendrik Leppkes <h.leppkes at gmail.com>:
> On Tue, Jun 28, 2016 at 12:01 PM, Hendrik Leppkes <h.leppkes at gmail.com> wrote:
>> On Tue, Jun 28, 2016 at 11:48 AM, Hendrik Leppkes <h.leppkes at gmail.com> wrote:
>>> Visual Studio 2015 Update 3 introduced a new SSA optimizer, however
>>> it unfortunately causes miscompilations. Until it is fixed, the new
>>> optimizations are disabled and should be re-checked on subsequent
>>> compiler releases.
>>>
>>> Fixes recent FATE failure of fate-lavf-pam on VS2015.
>>
>> On that note, i'm not exactly sure which code actually miscompiles.
>> I though its pamenc, but the generated files are identical, then I
>> though its the crc computing code (crcenc/adler32), but those seem
>> fine as well and would likely screw up in more then one case if they
>> would miscompile.
>>
>> So that leaves pnmdec, I suppose, but I didn't make much headway to
>> poke around in that. If anyone has any handy hints how to find the
>> code in question that might be helpful.
>> Maybe the code is actually not-quite-right and might enjoy some straigtening.
>>
>
> Applied the patch to disable the new optimizations in MSVC as I did
> not spot anything obviously "bad" in pamdec - which does not mean
> there isn't anything there, of course.
>

This is pretty bad miscompilation in new SSA optimizer. It assumes
that variable declared in loop doesn't change the value even if there
is assignment. I minimized testcese and reported the bug
https://connect.microsoft.com/VisualStudio/feedback/details/2890170

- Kacper


More information about the ffmpeg-devel mailing list