From patchwork Mon Dec 30 13:15:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Hubicka X-Patchwork-Id: 1216433 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-516539-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ucw.cz Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="CxG23ED1"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47mdGq3P1Bz9sPJ for ; Tue, 31 Dec 2019 00:16:00 +1100 (AEDT) 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=RMx9wNMpRihR3k3Xedoko9d0n26SO2ztTB2U/bJFhJVIfgovP8j8x YyDVfTIDbjZtzrBqRGzZt8MIzGZkCEksw/B8EThpcJtWkY9QPLLPSNTyhED+JXou yppILOcvAeJ+hnmol3SKflPy4bK7kiWveL+C/Cq7e/mWzcwk9PGFVQ= 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=44IOd8vhbsX7M0b0pxOLzjdEPTQ=; b=CxG23ED16X0kIW9mvhFC AFaEyOfzuLc4FUmd1ub6FMrBzDCd/ByAapHcARoMYtbiViA3ScUr+gQznNGn2lOm sUFkk9b8J0FU4lZd/VaBIpUB8utg8VLvS+l/n8ZxjaspjYsI35kyl5mQT/dtKe8V eNptHmf8Y4cNzGqhOONui3g= Received: (qmail 94802 invoked by alias); 30 Dec 2019 13:15:53 -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 94794 invoked by uid 89); 30 Dec 2019 13:15:53 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-18.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT autolearn=ham version=3.3.1 spammy=Profile, driven X-HELO: nikam.ms.mff.cuni.cz Received: from nikam.ms.mff.cuni.cz (HELO nikam.ms.mff.cuni.cz) (195.113.20.16) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 30 Dec 2019 13:15:50 +0000 Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id 0419928085E; Mon, 30 Dec 2019 14:15:47 +0100 (CET) Date: Mon, 30 Dec 2019 14:15:47 +0100 From: Jan Hubicka To: gcc-patches@gcc.gnu.org, gerald@pfeifer.com Subject: [wwwdocs] Add GCC10 IPA/LTO changes Message-ID: <20191230131547.GB99729@kam.mff.cuni.cz> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) Hi, here are some of changes of LTO/IPA done in GCC10. There is also recursive cloning and some other stuff I will add incrementally as well as some data on overall compile time/memory use improvements as we reported in past years. I am still running tests and fixing bugs in this area. Honza diff --git a/htdocs/gcc-10/changes.html b/htdocs/gcc-10/changes.html index aca76825..0f0fce18 100644 --- a/htdocs/gcc-10/changes.html +++ b/htdocs/gcc-10/changes.html @@ -50,12 +50,46 @@ a work-in-progress.

General Improvements

+

The following GCC command line options have been introduced or improved.

+
    +
  • -fprofile-partial-training + can now be used to inform compiler that code paths not covered by the + train run should not be optimized for size.
  • +

The following built-in functions have been introduced.

  • __builtin_roundeven for the corresponding function from ISO/IEC TS 18661.
+

A large number of improvements to code generation have been made, including + but not limited to the following.

+
    +
  • Inter-procedural optimization improvements: +
      +
    • Inter-procedural scalar replacement for aggregates (IPA-SRA) pass was re-implemented to work at link-time. +
    • +
    • -finline-functions + is now enabled at -O2 and was retuned for better code size + versus runtime performance tradeofs. Inliner heuristics was also + significantly sped up to avoid negativive impact to -flto + -O2 compile times. +
    • +
    • Inliner heuristics and function clonning can now use value-range + information to predict effectivity of individual transformations.
    • +
    • Selected --param values can now be specified at + translation unit granuality. This includes all parameters controlling + inliner.
    • +
    • During link-time optimization the C++ One Definition Rule is used to + increase precision of type based alias analysis.
    • +
    +
  • +
  • Profile driven optimization improvements: +
      +
    • Profile maintenance during compilation was improved and hot/cold code partitioning improved.
    • +
    +
  • +

New Languages and Language specific improvements