[3.5] AArch64: docuemnt merge in release notes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_35@213939 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tim Northover 2014-07-25 11:51:48 +00:00
parent 3a6e7792a2
commit b3a02edc53

View File

@ -183,6 +183,50 @@ MIPS64r2, and MIPS64r6 as well as some of the Application Specific Extensions
such as MSA. It also supports several of the MIPS specific assembler directives
such as ``.set``, ``.module``, ``.cpload``, etc.
Changes to the AArch64 Target
-----------------------------
The AArch64 target in LLVM 3.5 is based on substantially different code to the
one in LLVM 3.4, having been created as the result of merging code released by
Apple for targetting iOS with the previously existing backend.
We hope the result is a general improvement in the project. Particularly notable
changes are:
* We should produce faster code, having combined optimisations and ideas from
both sources in the final backend.
* We have a FastISel for AArch64, which should compile time for debug builds (at
-O0).
* We can now target iOS platforms (using the triple ``arm64-apple-ios7.0``).
Background
^^^^^^^^^^
During the 3.5 release cycle, Apple released the source used to generate 64-bit
ARM programs on iOS platforms. This took the form of a separate backend that had
been developed in parallel to, and largely isolation from, the existing
code.
We decided that maintaining the two backends indefinitely was not an option,
since their features almost entirely overlapped. However, the implementation
details in both were different enough that any merge had to firmly start with
one backend as the core and cherry-pick the best features and optimisations from
the other.
After discussion, we decided to start with the Apple backend (called ARM64 at
the time) since it was older, more thoroughly tested in production use, and had
fewer idiosyncracies in the implementation details.
Many people from across the community worked throughout April and May to ensure
that this merge destination had all the features we wanted, from both
sources. In many cases we could simply copy code across; others needed heavy
modification for the new host; in the most worthwhile, we looked at both
implementations and combined the best features of each in an entirely new way.
We had also decided that the name of the combined backend should be AArch64,
following ARM's official documentation. So, at the end of May the old
AArch64 directory was removed, and ARM64 renamed into its place.
External Open Source Projects Using LLVM 3.5
============================================