From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1737319-garchives=archives.gentoo.org@lists.gentoo.org> Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id CED9715800A for <garchives@archives.gentoo.org>; Mon, 14 Apr 2025 22:59:29 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id B0FCA342FDE for <garchives@archives.gentoo.org>; Mon, 14 Apr 2025 22:59:29 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id A82BE110105; Mon, 14 Apr 2025 22:59:28 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 9CE00110105 for <gentoo-commits@lists.gentoo.org>; Mon, 14 Apr 2025 22:59:28 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 491C5342FDE for <gentoo-commits@lists.gentoo.org>; Mon, 14 Apr 2025 22:59:28 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D95EC1758 for <gentoo-commits@lists.gentoo.org>; Mon, 14 Apr 2025 22:59:26 +0000 (UTC) From: "Sam James" <sam@gentoo.org> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org> Message-ID: <1744671546.ddc48fc0fbe2ed912534bd51afa10d6b9a5cf06c.sam@gentoo> Subject: [gentoo-commits] proj/gcc-patches:master commit in: 15.0.0/gentoo/ X-VCS-Repository: proj/gcc-patches X-VCS-Files: 15.0.0/gentoo/85_all_PR119614-ipa-vrp-lto.patch 15.0.0/gentoo/86_all_PR119614-ipa-vrp-lto.patch 15.0.0/gentoo/README.history X-VCS-Directories: 15.0.0/gentoo/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: ddc48fc0fbe2ed912534bd51afa10d6b9a5cf06c X-VCS-Branch: master Date: Mon, 14 Apr 2025 22:59:26 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: f1a07732-95b0-46fc-8fc8-f91725c79cf4 X-Archives-Hash: 4e60a2ae7c2419c4bd383dede6fcd263 commit: ddc48fc0fbe2ed912534bd51afa10d6b9a5cf06c Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Mon Apr 14 22:59:06 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Apr 14 22:59:06 2025 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=ddc48fc0 15.0.0: update 85_all_PR119614-ipa-vrp-lto.patch .. and drop incremental patch as it is folded in now. Signed-off-by: Sam James <sam <AT> gentoo.org> 15.0.0/gentoo/85_all_PR119614-ipa-vrp-lto.patch | 88 ++++++++++++++++++----- 15.0.0/gentoo/86_all_PR119614-ipa-vrp-lto.patch | 93 ------------------------- 15.0.0/gentoo/README.history | 1 - 3 files changed, 71 insertions(+), 111 deletions(-) diff --git a/15.0.0/gentoo/85_all_PR119614-ipa-vrp-lto.patch b/15.0.0/gentoo/85_all_PR119614-ipa-vrp-lto.patch index 86fb953..3049a2f 100644 --- a/15.0.0/gentoo/85_all_PR119614-ipa-vrp-lto.patch +++ b/15.0.0/gentoo/85_all_PR119614-ipa-vrp-lto.patch @@ -1,4 +1,4 @@ -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119614#c27 +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119614#c32 diff --git a/gcc/ipa-cp.cc b/gcc/ipa-cp.cc index 26b1496f29b..9b47c6c364d 100644 --- a/gcc/ipa-cp.cc @@ -18,18 +18,19 @@ index 26b1496f29b..9b47c6c364d 100644 /* Newly expanded artificial thunks do not have lattices. */ continue; diff --git a/gcc/ipa-prop.cc b/gcc/ipa-prop.cc -index 49d68ab044b..d44c360b292 100644 +index 49d68ab044b..eb757658ad7 100644 --- a/gcc/ipa-prop.cc +++ b/gcc/ipa-prop.cc -@@ -2323,6 +2323,26 @@ ipa_get_value_range (const vrange &tmp) +@@ -2323,6 +2323,27 @@ ipa_get_value_range (const vrange &tmp) return vr; } +/* Read an IPA-VR from IB and DATA_IN. If it does not contain useful info, -+ return nullptr. If it is already in the hash of IPA-VRs, return the already ++ return nullptr. If it is already in the hash of IPA-VRs, return the already + present value, otherwise add it to the hash and return this new value. */ + -+ipa_vr *streamer_read_and_hash (lto_input_block *ib, data_in *data_in) ++ipa_vr * ++streamer_read_and_hash (lto_input_block *ib, data_in *data_in) +{ + ipa_vr ivr; + ivr.streamer_read (ib, data_in); @@ -48,7 +49,7 @@ index 49d68ab044b..d44c360b292 100644 /* Assign to JF a pointer to a range just like TMP but either fetch a copy from ipa_vr_hash_table or allocate a new on in GC memory. */ -@@ -3312,6 +3332,14 @@ ipa_analyze_node (struct cgraph_node *node) +@@ -3312,6 +3333,14 @@ ipa_analyze_node (struct cgraph_node *node) analysis_dom_walker (&fbi).walk (ENTRY_BLOCK_PTR_FOR_FN (cfun)); disable_ranger (cfun); @@ -63,7 +64,7 @@ index 49d68ab044b..d44c360b292 100644 ipa_release_body_info (&fbi); free_dominance_info (CDI_DOMINATORS); pop_cfun (); -@@ -4793,6 +4821,8 @@ ipa_node_params_t::duplicate(cgraph_node *, cgraph_node *, +@@ -4793,6 +4822,8 @@ ipa_node_params_t::duplicate(cgraph_node *, cgraph_node *, new_info->known_csts = old_info->known_csts.copy (); new_info->known_contexts = old_info->known_contexts.copy (); @@ -72,7 +73,7 @@ index 49d68ab044b..d44c360b292 100644 new_info->analysis_done = old_info->analysis_done; new_info->node_enqueued = old_info->node_enqueued; new_info->versionable = old_info->versionable; -@@ -5272,6 +5302,15 @@ ipa_write_node_info (struct output_block *ob, struct cgraph_node *node) +@@ -5272,6 +5303,15 @@ ipa_write_node_info (struct output_block *ob, struct cgraph_node *node) streamer_write_uhwi (ob, ipa_get_param_count (info)); for (j = 0; j < ipa_get_param_count (info); j++) streamer_write_uhwi (ob, ipa_get_param_move_cost (info, j)); @@ -88,7 +89,7 @@ index 49d68ab044b..d44c360b292 100644 bp = bitpack_create (ob->main_stream); gcc_assert (info->analysis_done || ipa_get_param_count (info) == 0); -@@ -5407,6 +5446,15 @@ ipa_read_node_info (class lto_input_block *ib, struct cgraph_node *node, +@@ -5407,6 +5447,15 @@ ipa_read_node_info (class lto_input_block *ib, struct cgraph_node *node, for (k = 0; k < param_count; k++) streamer_read_uhwi (ib); @@ -104,16 +105,16 @@ index 49d68ab044b..d44c360b292 100644 bp = streamer_read_bitpack (ib); for (k = 0; k < param_count; k++) { -@@ -6218,7 +6266,7 @@ bool +@@ -6218,7 +6267,7 @@ bool ipa_return_value_range (value_range &range, tree decl) { cgraph_node *n = cgraph_node::get (decl); - if (!n || !ipa_return_value_sum) -+ if (!n || (!ipa_return_value_sum)) ++ if (!n) return false; enum availability avail; n = n->ultimate_alias_target (&avail); -@@ -6226,11 +6274,25 @@ ipa_return_value_range (value_range &range, tree decl) +@@ -6226,11 +6275,24 @@ ipa_return_value_range (value_range &range, tree decl) return false; if (n->decl != decl && !useless_type_conversion_p (TREE_TYPE (decl), TREE_TYPE (n->decl))) return false; @@ -125,8 +126,7 @@ index 49d68ab044b..d44c360b292 100644 + + if (ipa_return_value_sum) + { -+ ipa_return_value_summary *v = ipa_return_value_sum->get (n); -+ if (v) ++ if (ipa_return_value_summary *v = ipa_return_value_sum->get (n)) + { + v->vr->get_vrange (range); + return true; @@ -182,7 +182,7 @@ index 3bd442fff39..8dc8e2f2ab5 100644 /* From tree-sra.cc: */ tree build_ref_for_offset (location_t, tree, poly_int64, bool, tree, diff --git a/gcc/lto-cgraph.cc b/gcc/lto-cgraph.cc -index ac835a435ec..877a9a496cc 100644 +index ac835a435ec..a99e7227528 100644 --- a/gcc/lto-cgraph.cc +++ b/gcc/lto-cgraph.cc @@ -44,6 +44,11 @@ along with GCC; see the file COPYING3. If not see @@ -197,6 +197,20 @@ index ac835a435ec..877a9a496cc 100644 /* True when asm nodes has been output. */ bool asm_nodes_output = false; +@@ -1992,10 +1997,10 @@ input_offload_tables (bool do_force_output) + static int + output_cgraph_opt_summary_p (struct cgraph_node *node) + { +- if (node->clone_of || node->former_clone_of) +- return true; + clone_info *info = clone_info::get (node); +- return info && (info->tree_map || info->param_adjustments); ++ return info && (info->tree_map ++ || info->param_adjustments ++ || info->m_return_vr); + } + + /* Output optimization summary for EDGE to OB. */ @@ -2065,6 +2070,15 @@ output_node_opt_summary (struct output_block *ob, stream_write_tree (ob, map->new_tree, true); } @@ -224,7 +238,7 @@ index ac835a435ec..877a9a496cc 100644 input_edge_opt_summary (e, ib_main); for (e = node->indirect_calls; e; e = e->next_callee) diff --git a/gcc/symtab-clones.h b/gcc/symtab-clones.h -index 362bcb63dd1..eb5167d7506 100644 +index 362bcb63dd1..a63036fc94f 100644 --- a/gcc/symtab-clones.h +++ b/gcc/symtab-clones.h @@ -21,12 +21,15 @@ along with GCC; see the file COPYING3. If not see @@ -240,7 +254,7 @@ index 362bcb63dd1..eb5167d7506 100644 : tree_map (NULL), - param_adjustments (NULL) + param_adjustments (NULL), -+ m_return_vr (nullptr) ++ m_return_vr (nullptr) { } /* Constants discovered by IPA-CP, i.e. which parameter should be replaced @@ -255,3 +269,43 @@ index 362bcb63dd1..eb5167d7506 100644 /* Return clone_info, if available. */ static clone_info *get (cgraph_node *node); +diff --git a/gcc/testsuite/g++.dg/lto/pr119614_0.C b/gcc/testsuite/g++.dg/lto/pr119614_0.C +new file mode 100644 +index 00000000000..09c07fbf566 +--- /dev/null ++++ b/gcc/testsuite/g++.dg/lto/pr119614_0.C +@@ -0,0 +1,34 @@ ++// PR tree-optimization/119614 ++// { dg-lto-do link } ++// { dg-lto-options { { -O2 -fPIC -flto -flto-partition=max } } } ++// { dg-require-effective-target shared } ++// { dg-require-effective-target fpic } ++// { dg-require-effective-target musttail } ++// { dg-extra-ld-options "-shared" } ++ ++struct S {} b; ++char *foo (); ++int e, g; ++void bar (); ++void corge (S); ++ ++[[gnu::noinline]] static char * ++baz () ++{ ++ bar (); ++ return 0; ++} ++ ++const char * ++qux () ++{ ++ if (e) ++ { ++ S a = b; ++ corge (a); ++ if (g) ++ return 0; ++ [[gnu::musttail]] return baz (); ++ } ++ return foo (); ++} diff --git a/15.0.0/gentoo/86_all_PR119614-ipa-vrp-lto.patch b/15.0.0/gentoo/86_all_PR119614-ipa-vrp-lto.patch deleted file mode 100644 index 29715be..0000000 --- a/15.0.0/gentoo/86_all_PR119614-ipa-vrp-lto.patch +++ /dev/null @@ -1,93 +0,0 @@ -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119614#c28 ---- a/gcc/symtab-clones.h 2025-04-14 22:51:13.172434417 +0200 -+++ b/gcc/symtab-clones.h 2025-04-14 22:55:11.461235984 +0200 -@@ -29,7 +29,7 @@ struct GTY(()) clone_info - clone_info () - : tree_map (NULL), - param_adjustments (NULL), -- m_return_vr (nullptr) -+ m_return_vr (nullptr) - { - } - /* Constants discovered by IPA-CP, i.e. which parameter should be replaced ---- a/gcc/ipa-prop.cc 2025-04-14 22:51:13.172434417 +0200 -+++ b/gcc/ipa-prop.cc 2025-04-14 22:54:56.094442247 +0200 -@@ -2324,17 +2324,19 @@ ipa_get_value_range (const vrange &tmp) - } - - /* Read an IPA-VR from IB and DATA_IN. If it does not contain useful info, -- return nullptr. If it is already in the hash of IPA-VRs, return the already -+ return nullptr. If it is already in the hash of IPA-VRs, return the already - present value, otherwise add it to the hash and return this new value. */ - --ipa_vr *streamer_read_and_hash (lto_input_block *ib, data_in *data_in) -+ipa_vr * -+streamer_read_and_hash (lto_input_block *ib, data_in *data_in) - { - ipa_vr ivr; - ivr.streamer_read (ib, data_in); - if (ivr.known_p ()) - { - if (!ipa_vr_hash_table) -- ipa_vr_hash_table = hash_table<ipa_vr_ggc_hash_traits>::create_ggc (37); -+ ipa_vr_hash_table -+ = hash_table<ipa_vr_ggc_hash_traits>::create_ggc (37); - - value_range tmp; - ivr.get_vrange (tmp); -@@ -6266,7 +6268,7 @@ bool - ipa_return_value_range (value_range &range, tree decl) - { - cgraph_node *n = cgraph_node::get (decl); -- if (!n || (!ipa_return_value_sum)) -+ if (!n) - return false; - enum availability avail; - n = n->ultimate_alias_target (&avail); -@@ -6277,8 +6279,7 @@ ipa_return_value_range (value_range &ran - - if (ipa_return_value_sum) - { -- ipa_return_value_summary *v = ipa_return_value_sum->get (n); -- if (v) -+ if (ipa_return_value_summary *v = ipa_return_value_sum->get (n)) - { - v->vr->get_vrange (range); - return true; ---- a/gcc/testsuite/g++.dg/lto/pr119614_0.C 2025-04-14 22:52:58.938014778 +0200 -+++ b/gcc/testsuite/g++.dg/lto/pr119614_0.C 2025-04-14 22:52:58.938014778 +0200 -@@ -0,0 +1,34 @@ -+// PR tree-optimization/119614 -+// { dg-lto-do link } -+// { dg-lto-options { { -O2 -fPIC -flto -flto-partition=max } } } -+// { dg-require-effective-target shared } -+// { dg-require-effective-target fpic } -+// { dg-require-effective-target musttail } -+// { dg-extra-ld-options "-shared" } -+ -+struct S {} b; -+char *foo (); -+int e, g; -+void bar (); -+void corge (S); -+ -+[[gnu::noinline]] static char * -+baz () -+{ -+ bar (); -+ return 0; -+} -+ -+const char * -+qux () -+{ -+ if (e) -+ { -+ S a = b; -+ corge (a); -+ if (g) -+ return 0; -+ [[gnu::musttail]] return baz (); -+ } -+ return foo (); -+} diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history index 9297835..8e237f9 100644 --- a/15.0.0/gentoo/README.history +++ b/15.0.0/gentoo/README.history @@ -4,7 +4,6 @@ - 84_all_PR116975.patch + 84_all_PR116975-GDCFLAGS.patch + 85_all_PR119614-ipa-vrp-lto.patch - + 86_all_PR119614-ipa-vrp-lto-inc.patch + 87_all_PR119803-vrp.patch 54 13 April 2025