Hey everyone, It's been way too long since the last status update. Since that last edition, we've gone through the 1.0 release, fixed a ton of bugs, and implemented some neat new things. Since many people are using the 1.0 release, I'll break the changes into "before 1.0" and "after 1.0" sections: Before 1.0: ----------- 1. We've cleaned up the source base quite a bit, speeding up several different LLVM components and otherwise cleaning up messy code. Everyone worked on this, but Misha and Brian made huge contributions. 2. Several C++ EH related bug fixes went into the C++ frontend. 3. Opaque type resolution has been reimplemented. It's now simpler and fixes problems linking a large number of programs. 4. We fixed the remaining problems preventing the C codes in SPECCPU 2000 from working. 5. Misha improved the JIT to incrementally load bytecode files from the disk as functions are needed. This reduces startup time as well as memory footprint. 6. John updated the QMTest test expectations to match what we expect to fail on either X86 or Sparc. Now all failures are really unknown problems. :) 7. Brian wrote the 'llvm-nm' utility! Documentation here: http://llvm.cs.uiuc.edu/docs/CommandGuide/llvm-nm.html 8. Completely rewrote how def-use chains are implemented, so that all operations on them take constant time. No interface changes were required. 9. John wrote the testing guide, updated the projects guide, and otherwise worked on improving the documentation for the release. 10. We switched over to a different implementation of the variable argument handling stuff, allowing more SSA-like operations. 11. LLVM now supports weak linkage, though not 'external weak' linkage (yet). 12. The X86 backend now generates many instructions that it didn't before (like inc, neg, etc). Also, some code size optimizations went in. 13. John improved our QMTest scripts so that they no longer require a separate, parallel tree for the test database. 14. The -deadargelim pass got improved to remove unused return values. 15. LLVM now has a simple interprocedural constant propagation pass, which gccas and gccld use to eliminate arguments. 16. The documentation for bugpoint was dramatically improved. If you're not familar with bugpoint, you should check it out: http://llvm.cs.uiuc.edu/docs/CommandGuide/bugpoint.html 17. The new Function::viewCFG* methods were added: http://mail.cs.uiuc.edu/pipermail/llvmdev/2003-October/000502.html 18. Misha gets major kudos for style-sheeting the docs and download page the day of the release. 19. Brian updated the C front-end to compile and work on i386/FreeBSD, which is a fully functional LLVM platform now (JIT included) 20. The linker now merges "incompatible" types with a warning instead of giving an error and quitting. This allows many more programs to link with the LLVM C/C++ frontend. 21. Many minor bugs all over the place were fixed. After 1.0: ---------- 1. Since 1.0, we've fixed a large number of bugs (36 at current count). If you're interested, you can find a full list here (the "to be 1.1" release notes): http://llvm.cs.uiuc.edu/docs/ReleaseNotes.html#whatsnew In particular, several severe C++ bugs have been fixed since the release. 2. The LLVM profiler, llvm-prof, is now in the wild: http://mail.cs.uiuc.edu/pipermail/llvmdev/2003-November/000528.html It suppors simple function and block-count profiling so far, is designed to be extensible to other flavors. 3. Brian hacked on the C/C++ front-end to make it work with Mac OS/X. LLVM now works pretty well on OS/X, except of course that there is no PPC backend yet. That said, there is always the C backend and... 4. Brian has also been working on make the LLVM interpreter work. In particular, he implemented exception handling and variable argument handling support. 5. Bugpoint no longer crashes while performing "final cleanups". This allowed removing the -disable-final-cleanups option (yaay). 6. Reid Spencer contributed the LLVM Namespacification patch, which allows LLVM to interoperate with other people's source bases better: http://mail.cs.uiuc.edu/pipermail/llvmdev/2003-November/000554.html 7. Misha is on a quest to clean up our web pages, and make them really be HTML 4.0 compliant. In the process he's converting them to use style sheets so that the documentation is more consistent and will eventually lose the ugly purple bars :) 8. Brian spiffed up llvm-nm to support archive files. 9. We just found out that the LLVM overview paper we sent to CGO got accepted! If you're interested, our submission is available here: http://llvm.cs.uiuc.edu/pubs/2003-09-30-LifelongOptimizationTR.html As you can see, we've fixed a LOT of bugs since 1.0. If you can, I highly recommend trying out the leading edge CVS tree for the LLVM core: it has all of the bugfixes in it, and should be stable. If you don't want to do that, we are probably going to release 1.1 in the next couple of weeks. This will obviously incorporate all of the bugfixes so far, plus a few new ones. If you have any questions about LLVM, what we're planning on doing, or how to use it in your new favorite project, please let us know. We want LLVM to be as stable and powerful as possible, and we can only do that with your feedback! :) -Chris -- http://llvm.cs.uiuc.edu/ http://www.nondot.org/~sabre/Projects/ _______________________________________________ LLVM mailing list LLVM at cs.uiuc.edu http://mail.cs.uiuc.edu/mailman/listinfo/llvm