From patchwork Mon Nov 18 16:17:58 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Hubicka X-Patchwork-Id: 292135 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 392112C00B6 for ; Tue, 19 Nov 2013 03:18:19 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; q=dns; s= default; b=gHM8WmFkT5KB1mytZEJ9bpHci/uC8KgLxWZw79gtQunDoF8CM86Rr RG2LX1fHquNFyg3sQBo55L/nMGxpT9u1nTAKVVGCYfcpEyq14/8Ze2NC2NhVKxbZ kcMsLc75fBhF6nqwLlYOQdXmRjGDVXyX2RKaLITa1Gt2zj9rmnrpbw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; s= default; bh=D21lP+41o+AHPVHNpQXzRCRKR/I=; b=eypn2g/etb6mxrb9Co/D eK8A34DVvOGDDL3LSUM/sJdcoxx3u8yRBTIVt3ugTZbdVQcZeJcph3rtdcE0Qfa+ 43xGriOpcjBsdzy5O0BcURIh9BpWOn2ZTel8ztCIxHf93P6oeTnBtlQKfiHoDkg8 BEPMmCQCO89HMr9J61wBuOw= Received: (qmail 18286 invoked by alias); 18 Nov 2013 16:18:09 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 18255 invoked by uid 89); 18 Nov 2013 16:18:08 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.5 required=5.0 tests=AWL, BAYES_50, RDNS_NONE, URIBL_BLOCKED autolearn=no version=3.3.2 X-HELO: nikam.ms.mff.cuni.cz Received: from Unknown (HELO nikam.ms.mff.cuni.cz) (195.113.20.16) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Mon, 18 Nov 2013 16:18:07 +0000 Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id 2E5A2543CC7; Mon, 18 Nov 2013 17:17:58 +0100 (CET) Date: Mon, 18 Nov 2013 17:17:58 +0100 From: Jan Hubicka To: gcc-patches@gcc.gnu.org, gerald@pfeifer.com Subject: [WWWDOCS] Document IPA/LTO/FDO/i386 changes in GCC-4.9 Message-ID: <20131118161757.GF11338@kam.mff.cuni.cz> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Hi, there was many changes in this area. The following are ones I can think of. Please fell free to suggest more changes. We probably should mention Teresa's splitting work once it is complete and new micro-architectures targetd by x86 backend. Honza Index: changes.html =================================================================== RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.9/changes.html,v retrieving revision 1.36 diff -u -r1.36 changes.html --- changes.html 15 Nov 2013 15:40:00 -0000 1.36 +++ changes.html 18 Nov 2013 16:15:32 -0000 @@ -37,14 +37,52 @@
  • AddressSanitizer, a fast memory error detector, is now available on ARM.
  • -
-
  • UndefinedBehaviorSanitizer (ubsan), a fast undefined behavior detector, has been added and can be enabled via -fsanitize=undefined. Various computations will be instrumented to detect undefined behavior at runtime. UndefinedBehaviorSanitizer is currently available for the C and C++ languages.
  • +
  • Link-time optimization (LTO) improvements: +
      +
    • Type merging was rewritten. New implementation is significantly faster + and use less memory. +
    • Better partitioning algorithm resulting in less streaming during + link-time.
    • +
    • Early removal of virtual methods reduce size of object files and + improve link-time memory usage and compile time.
    • +
    • Functions are no longer pointlessly renamed.
    • +
    • Function bodies are now loaded on-demand and released early improving + overall memory usage at link-time.
    • +
    • C++ hidden keyed methods can now be optimized out.
    • +
    + Memory usage of Firefox build with debug enabled was reduced from 15GB to + 3.5GB. Link time from 1700 seconds to 350 seconds. +
  • +
  • Inter-procedural optimization improvements: +
      +
    • New type inheritance analysis module improving devirtualization. + Devirtualization now take into account anonymous name-spaces and the + C++11 final keyword.
    • +
    • New speculative devirtualization pass (controlled by + -fdevirtualize-speculatively.
    • +
    • Calls that was speculatively made direct are turned back to indirect + when doing so does not bring any noticeable benefits.
    • +
    • Local aliases are introduced for symbols that are known to be + semantically equivalent across shared libraries improving dynamic + linking times.
    • +
    +
  • Feedback directed optimization improvements: +
      +
    • Profiling of programs using C++ inline functions is now more reliable.
    • +
    • New time profiling determine typical order in which functions are executed.
    • +
    • New function reordering pass (controlled by + -freorder-functions) significantly reduces + startup time of large applications. Until binutils support is + completed, it is effective only with link time optimization.
    • +
    • Feedback driven indirect call removal and devirtualization now handle + cross-module calls when link-time optimization is enabled.
    • +

New Languages and Language specific improvements

@@ -325,9 +363,20 @@ href="http://gcc.gnu.org/onlinedocs/gcc/Function-Multiversioning.html" >Function Multiversioning. -
  • GCC now supports the new Intel microarchitecture named Silvermont +
  • GCC now supports the new Intel microarchitecture named Silvermont through -march=slm.
  • +
  • -march=generic has been retuned for better support of + Intel core and AMD Bulldozer architectures. Performance of AMD K7, K8, + Intel Pentium-M, and Pentium4 based CPUs is no longer considered important + for generic. +
  • +
  • Better inlining of memcpy and memset + that is avare of value ranges and produce shorter alignment prologues. +
  • +
  • -mno-accumulate-outgoing-args is now honored when unwind + information is output. Argument accumulation is also now turned off + for portions of program optimized for size.
  • NDS32