[LLVMdev] Follow-up questions after successful upgrade to LLVM 3.0rc4

Duncan Sands baldrick at free.fr
Tue Nov 22 12:21:34 PST 2011


Hi Kevin,

>    1. In spite of building and running our tests cleanly with DEBUG+ASSERTS and
>       RELEASE builds, we consistently see a crash when we use a DEBUG build
>       without ASSERTs. The crash appears whenever we use the new cmpxchg
>       operator in a tight loop (as it would normally be used). I don’t
>       understand how this can happen. The only obvious explanations for this are
>       deliberate behavior differences for the build modes, or some kind of
>       handler that recovers from assertion failures. I’ve captured the IR from
>       an intermediate dump successfully compiled it with “llc” frequently, using
>       a wide variety of options attempting to match our usage, but it never
>       fails, and always generates reasonable code. Is anyone interested in
>       having us attempt to pursue this behavior to track down the problem?
>       Here’s a typical crash signature:

try running under valgrind.

>    2. I had no problem running the V3.0 regression tests according to the
>       instructions. However, the instructions in the Testing Infrastructure
>       Guide for running the Test Suite presume the existence and use of
>       llvm-gcc, http://llvm.org/docs/TestingGuide.html
>       <http://llvm.org/docs/TestingGuide.html>, both on-line and in the rc4
>       kits. Now that llvm-gcc is gone for V3.0, it isn’t completely obvious how
>       to run the test-suite using clang rather than llvm-gcc. I’ve made a couple
>       stabs at it without success. If there is new documentation that I’ve
>       missed, please be kind when you point out where I should have looked. :-}

Pass LLVMCC_OPTION=clang ENABLE_BUILT_CLANG=1 to make when running the
testsuite.

>    3. We see a modest performance improvement from the use of V3.0rc4, over
>       V2.9, but our largest test appears to run out of memory during the Greedy
>       Register allocator when we enable our extensive Type Based Alias Analysis
>       tags in the IR, and run in DEBUG+ASSERTs mode (but not in RELEASE mode).
>       I’m somewhat at a loss in how to properly report this problem, with basic
>       blocks numbering in the thousands. If anyone is interested in tracking
>       this down, please provide some suggestions about how to capture the IR and
>       environmental info to file a meaningful bug report.

Is there really a problem getting hold of the IR?  I don't know what front-end
you are using but most of them have a way of outputting IR.  If running llc on
the IR runs out of memory then I guess you can gzip it up and attach it to a bug
report.

Ciao, Duncan.



More information about the llvm-dev mailing list