summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorRenato Golin <renato.golin@linaro.org>2014-03-18 10:16:15 +0000
committerRenato Golin <renato.golin@linaro.org>2014-03-18 10:16:15 +0000
commitf48cfddd26b2b8c80ae27f1f2df45ace608fa388 (patch)
tree902dec5204da6597e4f5a1104df88eab0ca0e405 /docs
parent99ffa5c0f404d19ed99b9a9473ff1345ccd40d78 (diff)
downloadllvm-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.rst35
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
============================================