diff options
author | Piotr Padlewski <piotr.padlewski@gmail.com> | 2017-01-15 22:38:15 +0000 |
---|---|---|
committer | Piotr Padlewski <piotr.padlewski@gmail.com> | 2017-01-15 22:38:15 +0000 |
commit | ad0899426e044006797a2f4cc4df418e0bf91097 (patch) | |
tree | e04d24409f6624db2b07a575b364a2aa4d422d78 | |
parent | 0ff2de3630113d34b46f275fb32065610ec8f499 (diff) |
Mention Devirtualization and ThinLTO in ReleaseNotes
This might require some small fixits after generating
doc
Devirtualization:
https://reviews.llvm.org/D28606
ThinLTO:
https://reviews.llvm.org/D28746
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_40@292080 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/ReleaseNotes.rst | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst index 5b035cd332..b166dc63af 100644 --- a/docs/ReleaseNotes.rst +++ b/docs/ReleaseNotes.rst @@ -46,8 +46,34 @@ Major New Features clang to emit a warning or error if a function call meets one or more user-specified conditions. +- Enhanced devirtualization with + '-fstrict-vtable-pointers <http://clang.llvm.org/docs/UsersManual.html#cmdoption-fstrict-vtable-pointers>`_. + Clang devirtualizes across different basic blocks, like loops: + + .. code-block:: c++ + struct A { + virtual void foo(); + }; + void indirect(A &a, int n) { + for (int i = 0 ; i < n; i++) + a.foo(); + } + void test(int n) { + A a; + indirect(a, n); + } + + - ... +Improvements to ThinLTO (-flto=thin) +------------------------------------ +- Integration with profile data (PGO). When available, profile data enables + more accurate function importing decisions, as well as cross-module indirect + call promotion. +- Significant build-time and binary-size improvements when compiling with debug + info (-g). + Improvements to Clang's diagnostics ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |