[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