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