diff options
author | Renato Golin <renato.golin@linaro.org> | 2014-03-18 10:16:15 +0000 |
---|---|---|
committer | Renato Golin <renato.golin@linaro.org> | 2014-03-18 10:16:15 +0000 |
commit | f48cfddd26b2b8c80ae27f1f2df45ace608fa388 (patch) | |
tree | 902dec5204da6597e4f5a1104df88eab0ca0e405 /docs | |
parent | 99ffa5c0f404d19ed99b9a9473ff1345ccd40d78 (diff) | |
download | llvm-f48cfddd26b2b8c80ae27f1f2df45ace608fa388.tar.gz llvm-f48cfddd26b2b8c80ae27f1f2df45ace608fa388.tar.bz2 llvm-f48cfddd26b2b8c80ae27f1f2df45ace608fa388.tar.xz |
Add IAS/EHABI changes to release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204134 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ReleaseNotes.rst | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst index 07d4d07069..85bbd7187b 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. @@ -74,6 +71,38 @@ 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). You can disable them via the +flag ``-fno-unwind-tables`` in Clang. + External Open Source Projects Using LLVM 3.5 ============================================ |