public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jan Hubicka <hubicka@ucw.cz>
To: gcc-patches@gcc.gnu.org
Subject: Set inline-unit-growth to 40
Date: Sat, 12 Jan 2019 18:32:00 -0000	[thread overview]
Message-ID: <20190112183228.cajeytm4r3d4xyjs@kam.mff.cuni.cz> (raw)

Hello,
this patch sets inline-unit-growth to 40.  The performance changes are
- Firefox, LTO
  https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=f7bd026e1a931b9a284d1c85c2577a72dd592820&newProject=try&newRevision=74889968abcc688b8d161863566ed273c0401ee4&framework=1&filter=opt&showOnlyComparable=1&showOnlyImportant=1
  After fixes to inlining priorities this makes difference without
  profile feedback only.

  Code size growth is about 9.15% with LTO and 3.95 with LTO and profile
  feedback.
- Firefox noLTO
  https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=c902b72340a3dca3114f58578c1c8f3e6a1cd89c&newProject=try&newRevision=4974da6f92c144a9c09765b56a564a640069ddb9&framework=1&showOnlyComparable=1&showOnlyImportant=1
  With about 7% code size growth
- SPEC
  https://lnt.opensuse.org/db_default/v4/CPP/latest_runs_report?num_runs=10&min_percentage_change=0.02&revisions=46e2bd1143b5c60af814916d7673879b34ceb3f6%2Cc0d79cfe9c4ec30823480f2f9b256600e8e3899f
- C++ benchmarks
  https://lnt.opensuse.org/db_default/v4/SPEC/latest_runs_report?num_runs=10&all_changes=on&min_percentage_change=0.02&revisions=46e2bd1143b5c60af814916d7673879b34ceb3f6%2Cc0d79cfe9c4ec30823480f2f9b256600e8e3899f

I am not entirely happy about the code-size/performance tradeoffs but it
is concerned only for programs built with -O3 or having too many inline
keywords.  I have looked into inlining decisions for Firefox, HHVM and
Clang and inliner gets out of growt bounds way too early and some of
more performance aware projects already sets the limit up.

I will tune other metrics down to handle some of the code size problems.

Honza

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 267882)
+++ ChangeLog	(working copy)
@@ -1,3 +1,7 @@
+2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
+
+	* params.def (inline-unit-growth): Set to 40.
+
 2019-01-12  Jakub Jelinek  <jakub@redhat.com>
 
 	* tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
Index: params.def
===================================================================
--- params.def	(revision 267882)
+++ params.def	(working copy)
@@ -227,7 +227,7 @@ DEFPARAM(PARAM_LARGE_UNIT_INSNS,
 DEFPARAM(PARAM_INLINE_UNIT_GROWTH,
 	 "inline-unit-growth",
 	 "How much can given compilation unit grow because of the inlining (in percent).",
-	 20, 0, 0)
+	 40, 0, 0)
 DEFPARAM(PARAM_IPCP_UNIT_GROWTH,
 	 "ipcp-unit-growth",
 	 "How much can given compilation unit grow because of the interprocedural constant propagation (in percent).",

             reply	other threads:[~2019-01-12 18:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-12 18:32 Jan Hubicka [this message]
2019-01-14 16:28 ` Christophe Lyon
2019-01-14 16:40   ` Jan Hubicka
2019-01-17 13:22     ` Christophe Lyon
2019-01-14 16:53 ` Qing Zhao
2019-01-15 15:14   ` Jan Hubicka
2019-01-15 16:18     ` Qing Zhao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190112183228.cajeytm4r3d4xyjs@kam.mff.cuni.cz \
    --to=hubicka@ucw.cz \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).