commit:     b6c8ba65d3aeccf17fc8010370c22baf908da339
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  1 08:07:17 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jun  1 08:07:17 2019 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=b6c8ba65

7.4.0: backport PGO fix

Bug: https://bugs.gentoo.org/677724
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 7.4.0/gentoo/23_all-pgo.patch | 59 +++++++++++++++++++++++++++++++++++++++++++
 7.4.0/gentoo/README.history   |  3 +++
 2 files changed, 62 insertions(+)

diff --git a/7.4.0/gentoo/23_all-pgo.patch b/7.4.0/gentoo/23_all-pgo.patch
new file mode 100644
index 0000000..b11c72f
--- /dev/null
+++ b/7.4.0/gentoo/23_all-pgo.patch
@@ -0,0 +1,59 @@
+https://bugs.gentoo.org/677724
+
+From 332446ac24e5b37f441f7c9cb0b97fc36f9f0aa3 Mon Sep 17 00:00:00 2001
+From: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Sat, 15 Dec 2018 10:31:37 +0000
+Subject: [PATCH]       * ipa.c (cgraph_build_static_cdtor_1): Add
+ OPTIMIZATION and TARGET       parameters.     (cgraph_build_static_cdtor):
+ Update.       (build_cdtor): Use OPTIMIZATION and TARGET of the first real
+ cdtor         callsed.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@267168 
138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/ipa.c     | 12 +++++++++---
+
+--- a/gcc/ipa.c
++++ b/gcc/ipa.c
+@@ -831,7 +831,9 @@ ipa_discover_variable_flags (void)
+    be produced. */
+ 
+ static void
+-cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final)
++cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final,
++                           tree optimization,
++                           tree target)
+ {
+   static int counter = 0;
+   char which_buf[16];
+@@ -862,6 +864,8 @@ cgraph_build_static_cdtor_1 (char which, tree body, int 
priority, bool final)
+ 
+   TREE_STATIC (decl) = 1;
+   TREE_USED (decl) = 1;
++  DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl) = optimization;
++  DECL_FUNCTION_SPECIFIC_TARGET (decl) = target;
+   DECL_ARTIFICIAL (decl) = 1;
+   DECL_IGNORED_P (decl) = 1;
+   DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (decl) = 1;
+@@ -911,7 +915,7 @@ cgraph_build_static_cdtor_1 (char which, tree body, int 
priority, bool final)
+ void
+ cgraph_build_static_cdtor (char which, tree body, int priority)
+ {
+-  cgraph_build_static_cdtor_1 (which, body, priority, false);
++  cgraph_build_static_cdtor_1 (which, body, priority, false, NULL, NULL);
+ }
+ 
+ /* When target does not have ctors and dtors, we call all constructor
+@@ -993,7 +997,9 @@ build_cdtor (bool ctor_p, const vec<tree> &cdtors)
+       gcc_assert (body != NULL_TREE);
+       /* Generate a function to call all the function of like
+        priority.  */
+-      cgraph_build_static_cdtor_1 (ctor_p ? 'I' : 'D', body, priority, true);
++      cgraph_build_static_cdtor_1 (ctor_p ? 'I' : 'D', body, priority, true,
++                                 DECL_FUNCTION_SPECIFIC_OPTIMIZATION 
(cdtors[0]),
++                                 DECL_FUNCTION_SPECIFIC_TARGET (cdtors[0]));
+     }
+ }
+ 
+-- 
+2.20.1
+

diff --git a/7.4.0/gentoo/README.history b/7.4.0/gentoo/README.history
index 54c6d3d..05000ee 100644
--- a/7.4.0/gentoo/README.history
+++ b/7.4.0/gentoo/README.history
@@ -1,3 +1,6 @@
+1.3            1 Jun 2019
+       + 23_all-pgo.patch
+
 1.2            2 Feb 2019
        U 01_all_default-fortify-source.patch
        + 21_all_kr-decl-PR88214.patch

Reply via email to