X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FReleaseNotes.rst;h=8dc16813580ebe55151d9ea3efdb894a43e5d645;hb=534ec26d07646092bc869e76e61e95dca3915e1b;hp=42127c81f707bf954bdbbccd5bc1938443eb6264;hpb=9f5066c72c0aa77cc3a0a26f6e9f38af5daeeccb;p=oota-llvm.git diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst index 42127c81f70..8dc16813580 100644 --- a/docs/ReleaseNotes.rst +++ b/docs/ReleaseNotes.rst @@ -37,9 +37,6 @@ Non-comprehensive list of changes in this release * All backends have been changed to use the MC asm printer and support for the non MC one has been removed. -* The ARM back-end now has the EHABI exception handling enabled by default. Use - `-arm-disable-ehabi` to turn it off (both landing pads and unwind tables). - * Clang can now successfully self-host itself on Linux/Sparc64 and on FreeBSD/Sparc64. @@ -52,6 +49,12 @@ Non-comprehensive list of changes in this release 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. + .. NOTE For small 1-3 sentence descriptions, just add an entry at the end of this list. If your description won't fit comfortably in one bullet @@ -71,6 +74,37 @@ Non-comprehensive list of changes in this release Makes programs 10x faster by doing Special New Thing. +Changes to the ARM Backend +-------------------------- + +Since release 3.3, a lot of new features have been included in the ARM +back-end but weren't production ready (ie. well tested) on release 3.4. +Just after the 3.4 release, we started heavily testing two major parts +of the back-end: the integrated assembler (IAS) and the ARM exception +handling (EHABI), and now they are enabled by default on LLVM/Clang. + +The IAS received a lot of GNU extensions and directives, as well as some +specific pre-UAL instructions. Not all remaining directives will be +implemented, as we made judgement calls on the need versus the complexity, +and have chosen simplicity and future compatibility where hard decisions +had to be made. The major difference is, as stated above, the IAS validates +all inline ASM, not just for object emission, and that cause trouble with +some uses of inline ASM as pre-processor magic. + +So, while the IAS is good enough to compile large projects (including most +of the Linux kernel), there are a few things that we can't (and probably +won't) do. For those cases, please use ``-fno-integrated-as`` in Clang. + +Exception handling is another big change. After extensive testing and +changes to cooperate with Dwarf unwinding, EHABI is enabled by default. +The options ``-arm-enable-ehabi`` and ``-arm-enable-ehabi-descriptors``, +which were used to enable EHABI in the previous releases, are removed now. + +This means all ARM code will emit EH unwind tables, or CFI unwinding (for +debug/profiling), or both. To avoid run-time inconsistencies, C code will +also emit EH tables (in case they interoperate with C++ code), as is the +case for other architectures (ex. x86_64). + External Open Source Projects Using LLVM 3.5 ============================================