blob: 16f03a4f0b10b60eaac52966b3f9b7763ec12085 [file] [log] [blame]
Dmitri Gribenko38782b82012-12-09 23:14:26 +00001======================
Hans Wennborg469822e2016-01-13 17:32:32 +00002LLVM 3.9 Release Notes
Dmitri Gribenko38782b82012-12-09 23:14:26 +00003======================
4
5.. contents::
6 :local:
7
Sean Silva1eab30d2013-01-20 03:29:50 +00008.. warning::
Hans Wennborg469822e2016-01-13 17:32:32 +00009 These are in-progress notes for the upcoming LLVM 3.9 release. You may
Nico Webera16bc782015-09-01 21:10:56 +000010 prefer the `LLVM 3.7 Release Notes <http://llvm.org/releases/3.7.0/docs
Sean Silva1eab30d2013-01-20 03:29:50 +000011 /ReleaseNotes.html>`_.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000012
Dmitri Gribenko38782b82012-12-09 23:14:26 +000013
14Introduction
15============
16
17This document contains the release notes for the LLVM Compiler Infrastructure,
Hans Wennborg469822e2016-01-13 17:32:32 +000018release 3.9. Here we describe the status of LLVM, including major improvements
Dmitri Gribenko38782b82012-12-09 23:14:26 +000019from the previous release, improvements in various subprojects of LLVM, and
20some of the current users of the code. All LLVM releases may be downloaded
21from the `LLVM releases web site <http://llvm.org/releases/>`_.
22
23For more information about LLVM, including information about the latest
24release, please check out the `main LLVM web site <http://llvm.org/>`_. If you
25have questions or comments, the `LLVM Developer's Mailing List
Tanya Lattner0d28f802015-08-05 03:51:17 +000026<http://lists.llvm.org/mailman/listinfo/llvm-dev>`_ is a good place to send
Dmitri Gribenko38782b82012-12-09 23:14:26 +000027them.
28
29Note that if you are reading this file from a Subversion checkout or the main
30LLVM web page, this document applies to the *next* release, not the current
31one. To see the release notes for a specific release, please see the `releases
32page <http://llvm.org/releases/>`_.
33
Sean Silva1eab30d2013-01-20 03:29:50 +000034Non-comprehensive list of changes in this release
35=================================================
Hans Wennborg469822e2016-01-13 17:32:32 +000036* .. note about autoconf build having been removed.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000037
Rafael Espindolacbc31d62016-02-12 15:28:45 +000038* .. note about C API functions LLVMParseBitcode,
Hans Wennborgaae49c12016-01-13 19:33:49 +000039 LLVMParseBitcodeInContext, LLVMGetBitcodeModuleInContext and
Mehdi Aminif71d6532016-02-12 06:22:00 +000040 LLVMGetBitcodeModule having been removed. LLVMGetTargetMachineData has been
41 removed (use LLVMGetDataLayout instead).
Eric Christophera6b96002015-12-18 01:46:52 +000042
Rafael Espindolacbc31d62016-02-12 15:28:45 +000043* The C API function LLVMLinkModules has been removed.
44
Amaury Sechet2ffde012016-02-16 00:22:02 +000045* The C API function LLVMAddTargetData has been removed.
46
Amaury Sechetf3549c42016-02-16 00:23:52 +000047* The C API function LLVMGetDataLayout is deprecated
48 in favor of LLVMGetDataLayoutStr.
49
Sean Silva1eab30d2013-01-20 03:29:50 +000050.. NOTE
51 For small 1-3 sentence descriptions, just add an entry at the end of
52 this list. If your description won't fit comfortably in one bullet
53 point (e.g. maybe you would like to give an example of the
54 functionality, or simply have a lot to talk about), see the `NOTE` below
55 for adding a new subsection.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000056
Sean Silva1eab30d2013-01-20 03:29:50 +000057* ... next change ...
Dmitri Gribenko38782b82012-12-09 23:14:26 +000058
Sean Silva1eab30d2013-01-20 03:29:50 +000059.. NOTE
60 If you would like to document a larger change, then you can add a
61 subsection about it right here. You can copy the following boilerplate
62 and un-indent it (the indentation causes it to be inside this comment).
Dmitri Gribenko38782b82012-12-09 23:14:26 +000063
Sean Silva1eab30d2013-01-20 03:29:50 +000064 Special New Feature
65 -------------------
Dmitri Gribenko38782b82012-12-09 23:14:26 +000066
Sean Silva1eab30d2013-01-20 03:29:50 +000067 Makes programs 10x faster by doing Special New Thing.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000068
Renato Golin7c9d0502014-03-18 10:16:15 +000069Changes to the ARM Backend
70--------------------------
71
Rafael Espindolabd334e22014-08-22 21:57:38 +000072 During this release ...
Renato Golin7c9d0502014-03-18 10:16:15 +000073
Renato Golin7c9d0502014-03-18 10:16:15 +000074
Daniel Sandersa4d18fc2014-07-23 12:59:26 +000075Changes to the MIPS Target
76--------------------------
77
Hans Wennborgef818c12015-01-14 18:07:30 +000078 During this release ...
Daniel Sanders1bcd70e2015-01-11 10:34:52 +000079
Daniel Sandersa4d18fc2014-07-23 12:59:26 +000080
Bill Schmidt40049892014-07-31 14:38:17 +000081Changes to the PowerPC Target
Bill Schmidt08616c72014-07-31 15:20:30 +000082-----------------------------
Bill Schmidt40049892014-07-31 14:38:17 +000083
Hans Wennborgef818c12015-01-14 18:07:30 +000084 During this release ...
Bill Schmidta2dece22015-01-12 20:46:43 +000085
Bill Schmidt40049892014-07-31 14:38:17 +000086
NAKAMURA Takumi9ec6a822015-12-21 02:37:23 +000087Changes to the X86 Target
88-----------------------------
89
90 During this release ...
91
Matt Arsenaultcee02cc2016-01-26 04:29:15 +000092Changes to the AMDGPU Target
93-----------------------------
94
95 * Mesa 11.0.x is no longer supported
96
NAKAMURA Takumi9ec6a822015-12-21 02:37:23 +000097
Peter Zotovd1136292015-01-13 09:48:02 +000098Changes to the OCaml bindings
99-----------------------------
100
Hans Wennborgef818c12015-01-14 18:07:30 +0000101 During this release ...
Peter Zotovd1136292015-01-13 09:48:02 +0000102
Akira Hatanakac8d06962016-02-17 19:35:47 +0000103Support for attribute 'notail' has been added
104---------------------------------------------
105
106This marker prevents optimization passes from adding 'tail' or
107'musttail' markers to a call. It is used to prevent tail call
108optimization from being performed on the call.
Rafael Espindola434e9562015-12-16 23:16:33 +0000109
Hans Wennborg469822e2016-01-13 17:32:32 +0000110External Open Source Projects Using LLVM 3.9
Pekka Jaaskelainenb531a112013-05-03 07:37:04 +0000111============================================
112
113An exciting aspect of LLVM is that it is used as an enabling technology for
114a lot of other language and tools projects. This section lists some of the
Hans Wennborg469822e2016-01-13 17:32:32 +0000115projects that have already been updated to work with LLVM 3.9.
Rafael Espindolabd334e22014-08-22 21:57:38 +0000116
117* A project
Kai Nackeec6e3922013-11-14 05:57:40 +0000118
119
Dmitri Gribenko38782b82012-12-09 23:14:26 +0000120Additional Information
121======================
122
123A wide variety of additional information is available on the `LLVM web page
124<http://llvm.org/>`_, in particular in the `documentation
125<http://llvm.org/docs/>`_ section. The web page also contains versions of the
126API documentation which is up-to-date with the Subversion version of the source
127code. You can access versions of these documents specific to this release by
128going into the ``llvm/docs/`` directory in the LLVM tree.
129
130If you have any questions or comments about LLVM, please feel free to contact
131us via the `mailing lists <http://llvm.org/docs/#maillist>`_.
132