]> granicus.if.org Git - clang/commitdiff
Mention Devirtualization and ThinLTO in ReleaseNotes
authorPiotr Padlewski <piotr.padlewski@gmail.com>
Sun, 15 Jan 2017 22:38:15 +0000 (22:38 +0000)
committerPiotr Padlewski <piotr.padlewski@gmail.com>
Sun, 15 Jan 2017 22:38:15 +0000 (22:38 +0000)
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

docs/ReleaseNotes.rst

index 5b035cd3320f8bbfbe6b9471281285294b8329b4..b166dc63af43113135b5af7766cca9f3cfb53915 100644 (file)
@@ -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
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^