Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 1 | ====================== |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 2 | LLVM 3.3 Release Notes |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 3 | ====================== |
| 4 | |
| 5 | .. contents:: |
| 6 | :local: |
| 7 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 8 | .. warning:: |
| 9 | These are in-progress notes for the upcoming LLVM 3.3 release. You may |
| 10 | prefer the `LLVM 3.2 Release Notes <http://llvm.org/releases/3.2/docs |
| 11 | /ReleaseNotes.html>`_. |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 12 | |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 13 | |
| 14 | Introduction |
| 15 | ============ |
| 16 | |
| 17 | This document contains the release notes for the LLVM Compiler Infrastructure, |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 18 | release 3.3. Here we describe the status of LLVM, including major improvements |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 19 | from the previous release, improvements in various subprojects of LLVM, and |
| 20 | some of the current users of the code. All LLVM releases may be downloaded |
| 21 | from the `LLVM releases web site <http://llvm.org/releases/>`_. |
| 22 | |
| 23 | For more information about LLVM, including information about the latest |
| 24 | release, please check out the `main LLVM web site <http://llvm.org/>`_. If you |
| 25 | have questions or comments, the `LLVM Developer's Mailing List |
| 26 | <http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>`_ is a good place to send |
| 27 | them. |
| 28 | |
| 29 | Note that if you are reading this file from a Subversion checkout or the main |
| 30 | LLVM web page, this document applies to the *next* release, not the current |
| 31 | one. To see the release notes for a specific release, please see the `releases |
| 32 | page <http://llvm.org/releases/>`_. |
| 33 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 34 | Non-comprehensive list of changes in this release |
| 35 | ================================================= |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 36 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 37 | .. NOTE |
| 38 | For small 1-3 sentence descriptions, just add an entry at the end of |
| 39 | this list. If your description won't fit comfortably in one bullet |
| 40 | point (e.g. maybe you would like to give an example of the |
| 41 | functionality, or simply have a lot to talk about), see the `NOTE` below |
| 42 | for adding a new subsection. |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 43 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 44 | * The CellSPU port has been removed. It can still be found in older versions. |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 45 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 46 | * The IR-level extended linker APIs (for example, to link bitcode files out of |
| 47 | archives) have been removed. Any existing clients of these features should |
| 48 | move to using a linker with integrated LTO support. |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 49 | |
Sean Silva | 8a72eff | 2013-01-20 03:32:55 +0000 | [diff] [blame] | 50 | * LLVM and Clang's documentation has been migrated to the `Sphinx |
| 51 | <http://sphinx-doc.org/>`_ documentation generation system which uses |
| 52 | easy-to-write reStructuredText. See `llvm/docs/README.txt` for more |
| 53 | information. |
| 54 | |
Sean Silva | a79535c | 2013-02-07 05:56:46 +0000 | [diff] [blame^] | 55 | * TargetTransformInfo (TTI) is a new interface that can be used by IR-level |
| 56 | passes to obtain target-specific information, such as the costs of |
| 57 | instructions. Only "Lowering" passes such as LSR and the vectorizer are |
| 58 | allowed to use the TTI infrastructure. |
Nadav Rotem | 87c6157 | 2013-02-07 05:42:31 +0000 | [diff] [blame] | 59 | |
Sean Silva | a79535c | 2013-02-07 05:56:46 +0000 | [diff] [blame^] | 60 | * We've improved the X86 and ARM cost model. |
Nadav Rotem | 2119cf0 | 2013-02-07 05:44:58 +0000 | [diff] [blame] | 61 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 62 | * ... next change ... |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 63 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 64 | .. NOTE |
| 65 | If you would like to document a larger change, then you can add a |
| 66 | subsection about it right here. You can copy the following boilerplate |
| 67 | and un-indent it (the indentation causes it to be inside this comment). |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 68 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 69 | Special New Feature |
| 70 | ------------------- |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 71 | |
Sean Silva | 4a53562 | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 72 | Makes programs 10x faster by doing Special New Thing. |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 73 | |
Sean Silva | a79535c | 2013-02-07 05:56:46 +0000 | [diff] [blame^] | 74 | Loop Vectorizer |
| 75 | --------------- |
| 76 | |
| 77 | We've continued the work on the loop vectorizer. The loop vectorizer now |
| 78 | has the following features: |
| 79 | |
| 80 | - Loops with unknown trip count. |
| 81 | - Runtime checks of pointers |
| 82 | - Reductions, Inductions |
| 83 | - If Conversion |
| 84 | - Pointer induction variables |
| 85 | - Reverse iterators |
| 86 | - Vectorization of mixed types |
| 87 | - Vectorization of function calls |
| 88 | - Partial unrolling during vectorization |
| 89 | |
| 90 | |
| 91 | |
Dmitri Gribenko | e17d858 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 92 | Additional Information |
| 93 | ====================== |
| 94 | |
| 95 | A wide variety of additional information is available on the `LLVM web page |
| 96 | <http://llvm.org/>`_, in particular in the `documentation |
| 97 | <http://llvm.org/docs/>`_ section. The web page also contains versions of the |
| 98 | API documentation which is up-to-date with the Subversion version of the source |
| 99 | code. You can access versions of these documents specific to this release by |
| 100 | going into the ``llvm/docs/`` directory in the LLVM tree. |
| 101 | |
| 102 | If you have any questions or comments about LLVM, please feel free to contact |
| 103 | us via the `mailing lists <http://llvm.org/docs/#maillist>`_. |
| 104 | |