For those not keeping track of the SVN/Git developments, a partial list of user/developer-facing features for LLVM 3.5 are outlined via the LLVM.org release notes that are maintained in real-time. There hasn't been too much activity for LLVM 3.5 that has us really excited at the moment, but the official list right now includes:
- All backends have been changed to use the MC asm printer and support for the non MC one has been removed.
- Clang can now successfully self-host itself on Linux/Sparc64 and on FreeBSD/Sparc64.
- LLVM now assumes the assembler supports .loc for generating debug line numbers. The old support for printing the debug line info directly was only used by llc and has been removed.
- All inline assembly is parsed by the integrated assembler when it is enabled. Previously this was only the case for object-file output. It is now the case for assembly output as well. The integrated assembler can be disabled with the -no-integrated-as option,
- llvm-ar now handles IR files like regular object files. In particular, a regular symbol table is created for symbols defined in IR files.
- LLVM now always uses cfi directives for producing most stack unwinding information.
It's nice to see LLVM's Clang C/C++ compiler finally self-hosting for SPARC64 on both Linux and FreeBSD.
Another major change with LLVM 3.5 is that the compiler is built in C++11 mode by default so that these compiler developers can begin taking advantage of a subset of C++11 functionality. Clang also now has a virtual file-system and developers are working on converging towards a single ARM 64-bit back-end after Apple open-sourced and merged their AArch64 compiler back-end after LLVM developers from other companies already developed in-tree 64-bit ARM compiler support.