commit:     c8efdd40e70884f82c463ad5cf4c44c9e01125c3
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Mar  3 16:37:51 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Mar  3 16:37:51 2025 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=c8efdd40

15.0.0: add PGO patch for Firefox

Bug: https://gcc.gnu.org/PR118318
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../gentoo/81_all_PR118318-firefox-pgo-ice.patch   | 56 ++++++++++++++++++++++
 15.0.0/gentoo/README.history                       |  4 ++
 2 files changed, 60 insertions(+)

diff --git a/15.0.0/gentoo/81_all_PR118318-firefox-pgo-ice.patch 
b/15.0.0/gentoo/81_all_PR118318-firefox-pgo-ice.patch
new file mode 100644
index 0000000..4e01689
--- /dev/null
+++ b/15.0.0/gentoo/81_all_PR118318-firefox-pgo-ice.patch
@@ -0,0 +1,56 @@
+From 833d679c3c071b78dfb22015fe03d2cecfd650ec Mon Sep 17 00:00:00 2001
+Message-ID: 
<833d679c3c071b78dfb22015fe03d2cecfd650ec.1741019831.git....@gentoo.org>
+From: Martin Jambor <[email protected]>
+Date: Mon, 3 Mar 2025 14:18:10 +0100
+Subject: [PATCH] ipa-cp: Avoid ICE when redistributing nodes among edges to
+ recursive clones (PR 118318)
+
+Hi,
+
+PR 118318 reported an ICE during PGO build of Firefox when IPA-CP, in
+the final stages of update_counts_for_self_gen_clones where it
+attempts to guess how to distribute profile count among clones created
+for recursive edges and the various edges that are created in the
+process.  If one such edge has profile count of kind GUESSED_GLOBAL0,
+the compatibility check in the operator+ will lead to an ICE.  After
+discussing the situation with Honza, we concluded that there is little
+more we can do other than check for this situation before touching the
+edge count, so this is what this patch does.
+
+Bootstrapped and LTO-profile-bootstrapped and tested on x86_64.  OK for
+master?  (Should I then backport this to active release branches?  I
+guess it would make sense.)
+
+Thanks,
+
+Martin
+
+gcc/ChangeLog:
+
+2025-02-28  Martin Jambor  <[email protected]>
+
+PR ipa/118318
+       * ipa-cp.cc (adjust_clone_incoming_counts): Add a compatible_p check.
+---
+ gcc/ipa-cp.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/ipa-cp.cc b/gcc/ipa-cp.cc
+index 3c994f24f540..264568989a96 100644
+--- a/gcc/ipa-cp.cc
++++ b/gcc/ipa-cp.cc
+@@ -4638,7 +4638,8 @@ adjust_clone_incoming_counts (cgraph_node *node,
+       cs->count = cs->count.combine_with_ipa_count (sum);
+       }
+     else if (!desc->processed_edges->contains (cs)
+-           && cs->caller->clone_of == desc->orig)
++           && cs->caller->clone_of == desc->orig
++           && cs->count.compatible_p (desc->count))
+       {
+       cs->count += desc->count;
+       if (dump_file)
+
+base-commit: f1c30c6213fb228f1e8b5973d10c868b834a4acd
+-- 
+2.48.1
+

diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history
index 06c4a0d..abbecb3 100644
--- a/15.0.0/gentoo/README.history
+++ b/15.0.0/gentoo/README.history
@@ -1,3 +1,7 @@
+47     ????
+
+       + 81_all_PR118318-firefox-pgo-ice.patch
+
 46     17 February 2025
 
        - 
81_all_PR118097-ipa-cp-Perform-operations-in-the-appropriate-types-P.patch

Reply via email to