Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.

JL #74

Open
wants to merge 90 commits into
base: master
Choose a base branch
from
Open

JL #74

Changes from 1 commit
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
75e093b
Creating release_70 branch off revision 338536
zmodem Aug 1, 2018
02181d6
Drop 'svn' suffix from the version number.
zmodem Aug 1, 2018
3332f06
Merging r338658:
zmodem Aug 2, 2018
9dbe7c7
Merging r338682:
zmodem Aug 2, 2018
d030aee
Merging r338554:
zmodem Aug 2, 2018
4f6e104
Release notes: fix -fno-strict-float-cast-overflow quoting
zmodem Aug 2, 2018
9cc4d9e
Merging r338703 and r338709:
zmodem Aug 3, 2018
5aa2b5a
Merging r338751:
zmodem Aug 3, 2018
ed621a5
Merging r338762:
zmodem Aug 3, 2018
731482e
Merging r338599:
zmodem Aug 3, 2018
491b046
Release note for DWARF v5 support
pogo59 Aug 3, 2018
1a7200c
Merging r338817:
zmodem Aug 7, 2018
7fe11a1
Merging r338665:
zmodem Aug 7, 2018
9d9705f
Merging r338968:
zmodem Aug 7, 2018
7afafa5
Merging r338569:
zmodem Aug 7, 2018
07e3ee9
Merging r338610:
zmodem Aug 7, 2018
c5aadce
Merging r338915:
zmodem Aug 7, 2018
7205f34
ReleaseNotes: the new vs integration
zmodem Aug 7, 2018
b87385f
Merging r338716:
zmodem Aug 8, 2018
62ca9ef
Merging r339190:
zmodem Aug 8, 2018
f208a0a
Merging r338902:
zmodem Aug 8, 2018
ef7dd70
Merging r339319:
zmodem Aug 9, 2018
f7ec630
Merging r339316:
zmodem Aug 9, 2018
387b5e3
[7.0 branch] Update release notes (SystemZ, TableGen)
uweigand Aug 9, 2018
c7b3270
Merging r339225:
zmodem Aug 13, 2018
5a09a6b
Merging r339073:
zmodem Aug 13, 2018
c2e9eb3
Merging r339179 and r339184:
zmodem Aug 13, 2018
b4d5f64
Merging r339492:
zmodem Aug 13, 2018
18c17c4
Merging r339411:
zmodem Aug 13, 2018
1415ff0
[ReleaseNotes] Mention various windows related changes in 7.0
mstorsjo Aug 14, 2018
9360946
Merging r339600:
zmodem Aug 14, 2018
36b087d
Merging r339636:
rnk Aug 14, 2018
12eb6bc
[ReleaseNotes] Add release notes for Hexagon
Aug 14, 2018
ef7c5cc
[ReleaseNotes] Fix a typo
Aug 14, 2018
8684e0b
Merging r339166:
zmodem Aug 16, 2018
0caaac0
Merging r339533:
zmodem Aug 16, 2018
bb6ad81
Merging r339535:
zmodem Aug 16, 2018
f6ce3c5
Merging r339536:
zmodem Aug 16, 2018
2c9adfa
Merging r339769:
zmodem Aug 16, 2018
02e459e
Merging r339515:
zmodem Aug 17, 2018
e7782a9
Merging r339883:
zmodem Aug 17, 2018
dff83e9
Merging r339945:
zmodem Aug 17, 2018
98aa61b
Merging r338841:
zmodem Aug 17, 2018
39ee064
Merging r339822:
zmodem Aug 21, 2018
1215ec5
Merging r339895 and r339896:
zmodem Aug 21, 2018
9a7960e
Merging r339091:
zmodem Aug 21, 2018
fbe3346
Merging r340158:
zmodem Aug 21, 2018
57aa5d9
Merging r339674:
zmodem Aug 21, 2018
9df0977
Merging r340303:
zmodem Aug 21, 2018
4a4bff5
Merging r340691:
zmodem Aug 27, 2018
d6e617b
Merging r340641:
zmodem Aug 27, 2018
3d019e2
Merging r340839:
zmodem Aug 30, 2018
4a19487
Merging r340820:
zmodem Aug 30, 2018
400322b
Merging r340455:
zmodem Aug 30, 2018
8be2375
Merging r340416:
zmodem Aug 30, 2018
9f22831
Merging r340417:
zmodem Aug 30, 2018
c19f813
Merging r340751:
zmodem Aug 30, 2018
224408d
Merging r340900:
zmodem Aug 30, 2018
485d211
[docs][mips] 7.0 Release notes
atanasyan Aug 31, 2018
8be5c4f
Merging r341094:
zmodem Aug 31, 2018
1a55853
Merging r341244:
zmodem Sep 4, 2018
8111e8d
Merging r340959:
zmodem Sep 4, 2018
600f7a2
ReleaseNotes for PowerPC
zmodem Sep 5, 2018
738f19a
ReleaseNotes: support for new-pm passes in the opt tool
zmodem Sep 6, 2018
80cc9fc
ReleaseNotes: ARM SVE asm/disasm support
zmodem Sep 6, 2018
033c772
Merging r341416:
zmodem Sep 6, 2018
a5b9a59
Merging r341512:
zmodem Sep 6, 2018
cd197f3
ReleaseNotes: tidy up for the release
zmodem Sep 7, 2018
4a05921
Merging r341642:
zmodem Sep 10, 2018
82250ed
ReleaseNotes: minor tweaks
zmodem Sep 10, 2018
0d41278
docs: drop another in-progress warning
zmodem Sep 10, 2018
627a2d5
ReleaseNotes.rst: Add Zig to External Open Source Projects Using LLVM 7
zmodem Sep 11, 2018
65ce2e5
ReleaseNotes: some notes from Andres Freund
zmodem Sep 11, 2018
6c2e5a1
Merging r343347:
tstellar Oct 19, 2018
9a0352f
Merging r343443:
tstellar Oct 19, 2018
b2504ea
Merging r343428:
tstellar Oct 19, 2018
888225e
Merging r343373:
tstellar Oct 19, 2018
eb0722e
Merging r342461:
tstellar Oct 22, 2018
4c946b7
Merging r344325:
tstellar Oct 26, 2018
5ab8235
Merging r344454, r344455, r344645:
tstellar Nov 2, 2018
2e8411d
Merging r342354:
tstellar Nov 2, 2018
d0abf8b
Bump version to 7.0.1
tstellar Nov 2, 2018
b386e8b
Port Memoro to LLVM 7.0
ttreyer Nov 7, 2018
076c3f5
removing unneeded code from memoro instrumentation pass, other commen…
Dec 12, 2018
65dac8b
removing tool options in memoro instrumentation, it was a relic and w…
Dec 13, 2018
9720d28
Formatting
ttreyer Jan 6, 2019
35c5877
Merge branch 'memoro' into memoro_80
ttreyer Jan 6, 2019
4113dff
Cleanup the merge
ttreyer Jan 6, 2019
ca9d68c
Fix memoro to skip alloca-referencing loads/stores
jameslarus Aug 16, 2019
bc3f246
Properly handle global variables and unknown refs.
jameslarus Aug 16, 2019
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
ReleaseNotes: tidy up for the release
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341640 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
zmodem committed Sep 7, 2018
commit cd197f3be9d205665f3de699407c4fe1ed4415cc
128 changes: 42 additions & 86 deletions docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@ LLVM 7.0.0 Release Notes
.. contents::
:local:

.. warning::
These are in-progress notes for the upcoming LLVM 7 release.
Release notes for previous releases can be found on
`the Download Page <http://releases.llvm.org/download.html>`_.


Introduction
============
Expand All @@ -18,38 +13,27 @@ This document contains the release notes for the LLVM Compiler Infrastructure,
release 7.0.0. Here we describe the status of LLVM, including major improvements
from the previous release, improvements in various subprojects of LLVM, and
some of the current users of the code. All LLVM releases may be downloaded
from the `LLVM releases web site <http://llvm.org/releases/>`_.
from the `LLVM releases web site <https://llvm.org/releases/>`_.

For more information about LLVM, including information about the latest
release, please check out the `main LLVM web site <http://llvm.org/>`_. If you
release, please check out the `main LLVM web site <https://llvm.org/>`_. If you
have questions or comments, the `LLVM Developer's Mailing List
<http://lists.llvm.org/mailman/listinfo/llvm-dev>`_ is a good place to send
<https://lists.llvm.org/mailman/listinfo/llvm-dev>`_ is a good place to send
them.

Note that if you are reading this file from a Subversion checkout or the main
LLVM web page, this document applies to the *next* release, not the current
one. To see the release notes for a specific release, please see the `releases
page <http://llvm.org/releases/>`_.

Non-comprehensive list of changes in this release
=================================================
.. NOTE
For small 1-3 sentence descriptions, just add an entry at the end of
this list. If your description won't fit comfortably in one bullet
point (e.g. maybe you would like to give an example of the
functionality, or simply have a lot to talk about), see the `NOTE` below
for adding a new subsection.

* The Windows installer no longer includes a Visual Studio integration.
Instead, a new
`LLVM Compiler Toolchain Visual Studio extension <https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain>`
`LLVM Compiler Toolchain Visual Studio extension <https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain>`_
is available on the Visual Studio Marketplace. The new integration includes
support for Visual Studio 2017.

* Libraries have been renamed from 7.0 to 7. This change also impacts
downstream libraries like lldb.

* The LoopInstSimplify pass (-loop-instsimplify) has been removed.
* The LoopInstSimplify pass (``-loop-instsimplify``) has been removed.

* Symbols starting with ``?`` are no longer mangled by LLVM when using the
Windows ``x`` or ``w`` IR mangling schemes.
Expand All @@ -64,16 +48,13 @@ Non-comprehensive list of changes in this release
information available in LLVM to statically predict the performance of
machine code for a specific CPU.

* The optimization flag to merge constants (-fmerge-all-constants) is no longer
applied by default.

* Optimization of floating-point casts is improved. This may cause surprising
results for code that is relying on the undefined behavior of overflowing
results for code that is relying on the undefined behavior of overflowing
casts. The optimization can be disabled by specifying a function attribute:
"strict-float-cast-overflow"="false". This attribute may be created by the
``"strict-float-cast-overflow"="false"``. This attribute may be created by the
clang option ``-fno-strict-float-cast-overflow``.
Code sanitizers can be used to detect affected patterns. The option for
detecting this problem alone is "-fsanitize=float-cast-overflow":
Code sanitizers can be used to detect affected patterns. The clang option for
detecting this problem alone is ``-fsanitize=float-cast-overflow``:

.. code-block:: c

Expand All @@ -86,7 +67,7 @@ Non-comprehensive list of changes in this release

.. code-block:: bash

clang -O1 ftrunc.c -fsanitize=float-cast-overflow ; ./a.out
clang -O1 ftrunc.c -fsanitize=float-cast-overflow ; ./a.out
ftrunc.c:5:15: runtime error: 4.29497e+09 is outside the range of representable values of type 'int'
junk in the ftrunc: 0.000000

Expand All @@ -104,19 +85,20 @@ Non-comprehensive list of changes in this release
git grep -l 'DEBUG' | xargs perl -pi -e 's/\bDEBUG\s?\(/LLVM_DEBUG(/g'
git diff -U0 master | ../clang/tools/clang-format/clang-format-diff.py -i -p1 -style LLVM

* Early support for UBsan, X-Ray instrumentation and libFuzzer (x86 and x86_64) for OpenBSD. Support for MSan
(x86_64), X-Ray instrumentation and libFuzzer (x86 and x86_64) for FreeBSD.
* Early support for UBsan, X-Ray instrumentation and libFuzzer (x86 and x86_64)
for OpenBSD. Support for MSan (x86_64), X-Ray instrumentation and libFuzzer
(x86 and x86_64) for FreeBSD.

* ``SmallVector<T, 0>`` shrank from ``sizeof(void*) * 4 + sizeof(T)`` to
``sizeof(void*) + sizeof(unsigned) * 2``, smaller than ``std::vector<T>`` on
64-bit platforms. The maximum capacity is now restricted to ``UINT32_MAX``.
Since SmallVector doesn't have the exception-safety pessimizations some
implementations saddle std::vector with and is better at using ``realloc``,
it's now a better choice even on the heap (although when TinyPtrVector works,
it's even smaller).
implementations saddle ``std::vector`` with and is better at using ``realloc``,
it's now a better choice even on the heap (although when ``TinyPtrVector`` works,
that's even smaller).

* Preliminary/experimental support for DWARF v5 debugging information,
including the new .debug_names accelerator table. DWARF emitted at ``-O0``
including the new ``.debug_names`` accelerator table. DWARF emitted at ``-O0``
should be fully DWARF v5 compliant. Type units and split DWARF are known
not to be compliant, and higher optimization levels will still emit some
information in v4 format.
Expand All @@ -129,33 +111,22 @@ Non-comprehensive list of changes in this release
but it can now handle leftover C declarations in preprocessor output, if
given output from a preprocessor run externally.)

* CodeView debug info can now be emitted MinGW configurations, if requested.
* CodeView debug info can now be emitted for MinGW configurations, if requested.

* The :program:`opt` tool now supports the :option:`-load-pass-plugin` for
* The :program:`opt` tool now supports the ``-load-pass-plugin`` option for
loading pass plugins for the new PassManager.

* Note..

.. NOTE
If you would like to document a larger change, then you can add a
subsection about it right here. You can copy the following boilerplate
and un-indent it (the indentation causes it to be inside this comment).

Special New Feature
-------------------

Makes programs 10x faster by doing Special New Thing.

Changes to the LLVM IR
----------------------

* The signatures for the builtins @llvm.memcpy, @llvm.memmove, and @llvm.memset
have changed. Alignment is no longer an argument, and are instead conveyed as
parameter attributes.
* The signatures for the builtins ``@llvm.memcpy``, ``@llvm.memmove``, and
``@llvm.memset`` have changed. Alignment is no longer an argument, and are
instead conveyed as parameter attributes.

* invariant.group.barrier has been renamed to launder.invariant.group.
* ``invariant.group.barrier`` has been renamed to ``launder.invariant.group``.

* invariant.group metadata can now refer only empty metadata nodes.
* ``invariant.group`` metadata can now refer only to empty metadata nodes.

Changes to the AArch64 Target
-----------------------------
Expand Down Expand Up @@ -201,7 +172,7 @@ During this release the MIPS target has:
* Introduced definitions of ``[d]rem``, ``[d]remu``,
and microMIPSR6 ``ll/sc`` instructions.

* Shrink-wrapping is now supported and enabled by default (except for -O0).
* Shrink-wrapping is now supported and enabled by default (except for ``-O0``).

* Extended size reduction pass by the LWP and SWP instructions.

Expand All @@ -214,22 +185,22 @@ During this release the MIPS target has:

* Improved the selection of multiple instructions.

* Load/store lb, sb, ld, sd, lld, ... instructions
* Load/store ``lb``, ``sb``, ``ld``, ``sd``, ``lld``, ... instructions
now support 32/64-bit offsets.

* Added support for ``y``, ``M``, and ``L`` inline assembler operand codes.

* Extended list of relocations supported by the ``.reloc`` directive

* Fixed using a wrong register class for creating an emergency
spill slot for mips3 / n64 abi.
spill slot for mips3 / n64 ABI.

* MIPS relocation types were generated for microMIPS code.

* Corrected definitions of multiple instructions (``lwp``, ``swp``, ``ctc2``,
``cfc2``, ``sync``, ``synci``, ``cvt.d.w``, ...).

* Fixed atomic operations at O0 level.
* Fixed atomic operations at ``-O0`` level.

* Fixed local dynamic TLS with Sym64

Expand All @@ -240,11 +211,11 @@ During this release the PowerPC target has:

* Replaced the list scheduler for post register allocation with the machine scheduler.

* Added support for coldcc calling convention.
* Added support for ``coldcc`` calling convention.

* Added support for ``symbol@high`` and ``symbol@higha`` symbol modifiers.

* Added support for quad-precision floating point type (``__float128``) under the llvm option `-enable-ppc-quad-precision`.
* Added support for quad-precision floating point type (``__float128``) under the llvm option ``-enable-ppc-quad-precision``.

* Added dump function to ``LatencyPriorityQueue``.

Expand Down Expand Up @@ -293,57 +264,42 @@ Changes to the X86 Target
environments - in MSVC environments, long doubles are the same size as
normal doubles.)

Changes to the AMDGPU Target
-----------------------------

During this release ...

Changes to the AVR Target
-----------------------------

During this release ...

Changes to the OCaml bindings
-----------------------------

* Remove ``add_bb_vectorize``.
* Removed ``add_bb_vectorize``.


Changes to the C API
--------------------

* Remove ``LLVMAddBBVectorizePass``. The implementation was removed and the C
* Removed ``LLVMAddBBVectorizePass``. The implementation was removed and the C
interface was made a deprecated no-op in LLVM 5. Use
``LLVMAddSLPVectorizePass`` instead to get the supported SLP vectorizer.

Changes to the DAG infrastructure
---------------------------------
* ADDC/ADDE/SUBC/SUBE are now deprecated and will default to expand. Backends
that wish to continue to use these opcodes should explicitely request so
* ``ADDC``/``ADDE``/``SUBC``/``SUBE`` are now deprecated and will default to expand. Backends
that wish to continue to use these opcodes should explicitely request to do so
using ``setOperationAction`` in their ``TargetLowering``. New backends
should use UADDO/ADDCARRY/USUBO/SUBCARRY instead of the deprecated opcodes.

* The SETCCE opcode has now been removed in favor of SETCCCARRY.

* TableGen now supports multi-alternative pattern fragments via the PatFrags
class. PatFrag is now derived from PatFrags, which may require minor
changes to backends that directly access PatFrag members.
should use ``UADDO``/``ADDCARRY``/``USUBO``/``SUBCARRY`` instead of the deprecated opcodes.

External Open Source Projects Using LLVM 7
==========================================
* The ``SETCCE`` opcode has now been removed in favor of ``SETCCCARRY``.

* A project...
* TableGen now supports multi-alternative pattern fragments via the ``PatFrags``
class. ``PatFrag`` is now derived from ``PatFrags``, which may require minor
changes to backends that directly access ``PatFrag`` members.


Additional Information
======================

A wide variety of additional information is available on the `LLVM web page
<http://llvm.org/>`_, in particular in the `documentation
<http://llvm.org/docs/>`_ section. The web page also contains versions of the
<https://llvm.org/>`_, in particular in the `documentation
<https://llvm.org/docs/>`_ section. The web page also contains versions of the
API documentation which is up-to-date with the Subversion version of the source
code. You can access versions of these documents specific to this release by
going into the ``llvm/docs/`` directory in the LLVM tree.

If you have any questions or comments about LLVM, please feel free to contact
us via the `mailing lists <http://llvm.org/docs/#maillist>`_.
us via the `mailing lists <https://llvm.org/docs/#mailing-lists>`_.