Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering


LLVM Recognition

May 20th, 2009 by Multimedia Mike

I did a bunch with compilers in FATE tonight:

  • I formally inducted x86_32 and x86_64 configurations of LLVM for Linux into the FATE farm. I’ve heard that compiler is going to rescue us all someday. For the time being, it is exhibiting some problems with the FFmpeg source code, particularly on 32-bit.
  • I upgraded the gcc used for compiling the Mac OS X versions to gcc 4.0.1 build 5493, packaged with Xcode 3.1.3 which is the latest version per my understanding. I think this is the first time I have bothered to upgrade Xcode since the first time I installed it. Everything still runs smoothly there, both on 32- and 64-bit.
  • I updated the gcc-svn snapshots across x86_32, x86_64, and PowerPC, all on Linux. All 3 configurations are compiling now. That’s the good news. Regrettably, the PowerPC build is doing even worse now (i.e., failing more tests) than the recently released gcc 4.4.0.

Posted in FATE Server | 8 Comments »

8 Responses

  1. astrange Says:

    Could you run gcc svn/PPC with -fno-strict-aliasing once and see how many tests are fixed? I think it should be most of them.

    There should really be dsputil unit tests to make it easier to find this kind of thing.

  2. Michael Kostylev Says:

    –cc=clang -> 155/262
    –cc=clang –disable-sse -> 209/262
    –cc=clang –disable-mmx -> 209/262
    –cc=clang –disable-mmx –disable-optimizations -> 262/262

  3. Multimedia Mike Says:

    Nice legwork, Michael. Is it miscompiling ASM stuff all over the place? Or something else? And I wonder if this applies to assorted other configurations that are experiencing problems?

  4. Michael Kostylev Says:

    I’d say this is a masterpiece of the deadly optimization:

    –cc=clang –-disable-sse -–disable-optimizations –extra-cflags=’-O1′ -> 237/262
    –cc=clang –disable-optimizations –extra-cflags=’-O1′ -> 237/262
    –cc=clang –disable-optimizations –extra-cflags=’-O1 -fomit-frame-pointer’ -> 255/262

  5. mat Says:

    Hi Mike,

    use –arch=c : llvm as very borken asm inline support.

    For other failure, may be update llvm.

    A version of ffmpeg build with “–cc=’clang -ccc-host-triple i686-linux-gnu’ –enable-gpl –arch=c –disable-debug” an llvm (r72387) pass codectest on x86_32

  6. Jai Says:

    And hopefully the the end of this year’s GSoC Open64 will be able to build FFmpeg as well. That should be interesting.

  7. JB Says:

    Why aren’t you building OS X versions with GCC 4.2.1 as included with Leopard also? I’m getting good results with 4.2.1.

    However I’m trying to compile with LLVM-GCC under Snow Leopard and getting strange results.

    My AVCodecContext doesn’t misses apx 80% of all options, like -vcodec is all gone and a lot more other important ones. Any ideas or should I just stop trying..

  8. JB Says:

    ignore “doesn’t” in the last part. ;)