From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 85785158099 for ; Wed, 29 Nov 2023 20:16:07 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9B84C2BC014; Wed, 29 Nov 2023 20:16:06 +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)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 6F4102BC014 for ; Wed, 29 Nov 2023 20:16:06 +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 889DC335D1B for ; Wed, 29 Nov 2023 20:16:05 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 1DFCBC38 for ; Wed, 29 Nov 2023 20:16:04 +0000 (UTC) From: "Sam James" 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" Message-ID: <1701288949.27a129d42cd0e4a96d591d5ccadf5d220f441e06.sam@gentoo> Subject: [gentoo-commits] proj/gcc-patches:master commit in: 13.2.0/gentoo/ X-VCS-Repository: proj/gcc-patches X-VCS-Files: 13.2.0/gentoo/76_all_match.pd-don-t-emit-label-if-not-needed.patch 13.2.0/gentoo/77_all_match.pd-Remove-commented-out-line-pragmas-unless-vv.patch 13.2.0/gentoo/78_all_match.pd-CSE-the-dump-output-check.patch 13.2.0/gentoo/79_all_genmatch-split-shared-code-to-gimple-match-exports.c.patch 13.2.0/gentoo/80_all_match.pd-automatically-partition-match.cc-files.patch 13.2.0/gentoo/81_all_match.pd-Use-splits-in-makefile-and-make-configurabl.patch 13.2.0/gentoo/82_all_Makefile.in-clean-up-match.pd-related-dependencies.patch 13.2.0/gentoo/README.history X-VCS-Directories: 13.2.0/gentoo/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 27a129d42cd0e4a96d591d5ccadf5d220f441e06 X-VCS-Branch: master Date: Wed, 29 Nov 2023 20:16:04 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 57550d92-ad67-4cd0-bd67-1f6ee5863479 X-Archives-Hash: 20105b81f443b026249fd9236dcb10f1 commit: 27a129d42cd0e4a96d591d5ccadf5d220f441e06 Author: Sam James gentoo org> AuthorDate: Wed Nov 29 20:15:37 2023 +0000 Commit: Sam James gentoo org> CommitDate: Wed Nov 29 20:15:49 2023 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=27a129d4 13.2.0: rebase patches U 76_all_match.pd-don-t-emit-label-if-not-needed.patch U 77_all_match.pd-Remove-commented-out-line-pragmas-unless-vv.patch U 78_all_match.pd-CSE-the-dump-output-check.patch U 79_all_genmatch-split-shared-code-to-gimple-match-exports.c.patch U 80_all_match.pd-automatically-partition-match.cc-files.patch U 81_all_match.pd-Use-splits-in-makefile-and-make-configurabl.patch + 82_all_Makefile.in-clean-up-match.pd-related-dependencies.patch Signed-off-by: Sam James gentoo.org> ...l_match.pd-don-t-emit-label-if-not-needed.patch | 24 ++++----- ...move-commented-out-line-pragmas-unless-vv.patch | 10 ++-- ...78_all_match.pd-CSE-the-dump-output-check.patch | 16 +++--- ...lit-shared-code-to-gimple-match-exports.c.patch | 18 +++---- ...pd-automatically-partition-match.cc-files.patch | 36 ++++++------- ...e-splits-in-makefile-and-make-configurabl.patch | 28 +++++----- ...in-clean-up-match.pd-related-dependencies.patch | 60 ++++++++++++++++++++++ 13.2.0/gentoo/README.history | 10 ++++ 8 files changed, 136 insertions(+), 66 deletions(-) diff --git a/13.2.0/gentoo/76_all_match.pd-don-t-emit-label-if-not-needed.patch b/13.2.0/gentoo/76_all_match.pd-don-t-emit-label-if-not-needed.patch index ac9efe6..9d702eb 100644 --- a/13.2.0/gentoo/76_all_match.pd-don-t-emit-label-if-not-needed.patch +++ b/13.2.0/gentoo/76_all_match.pd-don-t-emit-label-if-not-needed.patch @@ -1,9 +1,9 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 -From 6894f8e1fafe211a5f14ecbb534c92c2b78beb3a Mon Sep 17 00:00:00 2001 +From 30f78d42a215686cab9c7276076f11e5ea08341d Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 5 May 2023 13:35:17 +0100 -Subject: [PATCH 1/6] match.pd: don't emit label if not needed +Subject: [PATCH 02/14] match.pd: don't emit label if not needed This is a small QoL codegen improvement for match.pd to not emit labels when they are not needed. The codegen is nice and there is a small (but consistent) @@ -20,10 +20,10 @@ gcc/ChangeLog: 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc -index 4fab4135347..638606b2502 100644 +index 98b429a9d0bb..0c5a19aca8ed 100644 --- a/gcc/genmatch.cc +++ b/gcc/genmatch.cc -@@ -3352,6 +3352,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3354,6 +3354,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) char local_fail_label[256]; snprintf (local_fail_label, 256, "next_after_fail%u", ++fail_label_cnt); fail_label = local_fail_label; @@ -31,7 +31,7 @@ index 4fab4135347..638606b2502 100644 /* Analyze captures and perform early-outs on the incoming arguments that cover cases we cannot handle. */ -@@ -3366,6 +3367,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3368,6 +3369,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) fprintf_indent (f, indent, "if (TREE_SIDE_EFFECTS (_p%d)) goto %s;\n", i, fail_label); @@ -39,7 +39,7 @@ index 4fab4135347..638606b2502 100644 if (verbose >= 1) warning_at (as_a (s->match)->ops[i]->location, "forcing toplevel operand to have no " -@@ -3381,6 +3383,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3383,6 +3385,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) fprintf_indent (f, indent, "if (TREE_SIDE_EFFECTS (captures[%d])) " "goto %s;\n", i, fail_label); @@ -47,7 +47,7 @@ index 4fab4135347..638606b2502 100644 if (verbose >= 1) warning_at (cinfo.info[i].c->location, "forcing captured operand to have no " -@@ -3423,7 +3426,10 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3425,7 +3428,10 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) } if (s->kind == simplify::SIMPLIFY) @@ -59,7 +59,7 @@ index 4fab4135347..638606b2502 100644 fprintf_indent (f, indent, "if (UNLIKELY (dump_file && (dump_flags & TDF_FOLDING))) " "fprintf (dump_file, \"%s ", -@@ -3496,9 +3502,12 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3498,9 +3504,12 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) "res_op->resimplify (%s, valueize);\n", !e->force_leaf ? "lseq" : "NULL"); if (e->force_leaf) @@ -75,7 +75,7 @@ index 4fab4135347..638606b2502 100644 } } else if (result->type == operand::OP_CAPTURE -@@ -3554,9 +3563,12 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3556,9 +3565,12 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) continue; if (cinfo.info[i].result_use_count > cinfo.info[i].match_use_count) @@ -91,7 +91,7 @@ index 4fab4135347..638606b2502 100644 } for (unsigned j = 0; j < e->ops.length (); ++j) { -@@ -3607,6 +3619,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3609,6 +3621,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) { fprintf_indent (f, indent, "if (!_r)\n"); fprintf_indent (f, indent, " goto %s;\n", fail_label); @@ -99,7 +99,7 @@ index 4fab4135347..638606b2502 100644 } } } -@@ -3647,7 +3660,8 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3649,7 +3662,8 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) } indent -= 2; fprintf_indent (f, indent, "}\n"); @@ -110,5 +110,5 @@ index 4fab4135347..638606b2502 100644 } -- -2.40.1 +2.43.0 diff --git a/13.2.0/gentoo/77_all_match.pd-Remove-commented-out-line-pragmas-unless-vv.patch b/13.2.0/gentoo/77_all_match.pd-Remove-commented-out-line-pragmas-unless-vv.patch index ebf93bc..fb50871 100644 --- a/13.2.0/gentoo/77_all_match.pd-Remove-commented-out-line-pragmas-unless-vv.patch +++ b/13.2.0/gentoo/77_all_match.pd-Remove-commented-out-line-pragmas-unless-vv.patch @@ -1,10 +1,10 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 -From 972d5156126df1241e25e1a66518d4903f9564b3 Mon Sep 17 00:00:00 2001 +From 1e714dddc3646b484014ec6636b3d80910536b4b Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 5 May 2023 13:36:01 +0100 -Subject: [PATCH 2/6] match.pd: Remove commented out line pragmas unless -vv is - used. +Subject: [PATCH 03/14] match.pd: Remove commented out line pragmas unless -vv + is used. genmatch currently outputs commented out line directives that have no effect but the compiler still has to parse only to discard. @@ -24,7 +24,7 @@ gcc/ChangeLog: 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc -index 638606b2502..2533698bd9e 100644 +index 0c5a19aca8ed..8937c76369cb 100644 --- a/gcc/genmatch.cc +++ b/gcc/genmatch.cc @@ -209,7 +209,7 @@ output_line_directive (FILE *f, location_t location, @@ -37,5 +37,5 @@ index 638606b2502..2533698bd9e 100644 development it's right now more convenient to have line information from the generated file. Still keep the directives as comment for now -- -2.40.1 +2.43.0 diff --git a/13.2.0/gentoo/78_all_match.pd-CSE-the-dump-output-check.patch b/13.2.0/gentoo/78_all_match.pd-CSE-the-dump-output-check.patch index 311493d..8dda55a 100644 --- a/13.2.0/gentoo/78_all_match.pd-CSE-the-dump-output-check.patch +++ b/13.2.0/gentoo/78_all_match.pd-CSE-the-dump-output-check.patch @@ -1,9 +1,9 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 -From 43a48baef66cd06d8058668ecb2da6190054c163 Mon Sep 17 00:00:00 2001 +From c256e2c80e56c4e015d8d7ca50fa01a6ed98a1eb Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 5 May 2023 13:36:43 +0100 -Subject: [PATCH 3/6] match.pd: CSE the dump output check. +Subject: [PATCH 04/14] match.pd: CSE the dump output check. This is a small improvement in QoL codegen for match.pd to save time not re-evaluating the condition for printing debug information in every function. @@ -26,10 +26,10 @@ gcc/ChangeLog: 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc -index 2533698bd9e..b2e01dee2fa 100644 +index 8937c76369cb..a0643aa37308 100644 --- a/gcc/genmatch.cc +++ b/gcc/genmatch.cc -@@ -3431,7 +3431,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) +@@ -3433,7 +3433,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) needs_label = true; } @@ -38,7 +38,7 @@ index 2533698bd9e..b2e01dee2fa 100644 "fprintf (dump_file, \"%s ", s->kind == simplify::SIMPLIFY ? "Applying pattern" : "Matching expression"); -@@ -3892,6 +3892,8 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3894,6 +3894,8 @@ decision_tree::gen (FILE *f, bool gimple) } fprintf (f, ")\n{\n"); @@ -47,7 +47,7 @@ index 2533698bd9e..b2e01dee2fa 100644 s->s->gen_1 (f, 2, gimple, s->s->s->result); if (gimple) fprintf (f, " return false;\n"); -@@ -3937,6 +3939,8 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3939,6 +3941,8 @@ decision_tree::gen (FILE *f, bool gimple) fprintf (f, ", tree _p%d", i); fprintf (f, ")\n"); fprintf (f, "{\n"); @@ -56,7 +56,7 @@ index 2533698bd9e..b2e01dee2fa 100644 dop->gen_kids (f, 2, gimple, 0); if (gimple) fprintf (f, " return false;\n"); -@@ -4046,6 +4050,8 @@ write_predicate (FILE *f, predicate_id *p, decision_tree &dt, bool gimple) +@@ -4048,6 +4052,8 @@ write_predicate (FILE *f, predicate_id *p, decision_tree &dt, bool gimple) gimple ? ", tree (*valueize)(tree) ATTRIBUTE_UNUSED" : ""); /* Conveniently make 'type' available. */ fprintf_indent (f, 2, "const tree type = TREE_TYPE (t);\n"); @@ -66,5 +66,5 @@ index 2533698bd9e..b2e01dee2fa 100644 if (!gimple) fprintf_indent (f, 2, "if (TREE_SIDE_EFFECTS (t)) return false;\n"); -- -2.40.1 +2.43.0 diff --git a/13.2.0/gentoo/79_all_genmatch-split-shared-code-to-gimple-match-exports.c.patch b/13.2.0/gentoo/79_all_genmatch-split-shared-code-to-gimple-match-exports.c.patch index 3d011cc..f52ea7a 100644 --- a/13.2.0/gentoo/79_all_genmatch-split-shared-code-to-gimple-match-exports.c.patch +++ b/13.2.0/gentoo/79_all_genmatch-split-shared-code-to-gimple-match-exports.c.patch @@ -1,9 +1,9 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 -From db6e98b2677c4c3e08756902827e922d6da0f80b Mon Sep 17 00:00:00 2001 +From d5e12d6bf0a763f37e99eef5d579d9a6417e067c Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 5 May 2023 13:37:49 +0100 -Subject: [PATCH 4/6] genmatch: split shared code to gimple-match-exports.cc +Subject: [PATCH 05/14] genmatch: split shared code to gimple-match-exports.cc In preparation for automatically splitting match.pd files I split off the non-static helper functions that are shared between the match.pd functions off @@ -39,7 +39,7 @@ gcc/ChangeLog: create mode 100644 gcc/gimple-match-exports.cc diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index b8abc9a70b7..f5f189916c1 100644 +index 06d192fa9ed8..406856acde1c 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -223,6 +223,7 @@ libgcov-util.o-warn = -Wno-error @@ -68,10 +68,10 @@ index b8abc9a70b7..f5f189916c1 100644 s-match: build/genmatch$(build_exeext) $(srcdir)/match.pd cfn-operators.pd diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc -index b2e01dee2fa..09548bdac29 100644 +index a0643aa37308..5320d4110082 100644 --- a/gcc/genmatch.cc +++ b/gcc/genmatch.cc -@@ -3955,7 +3955,7 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3957,7 +3957,7 @@ decision_tree::gen (FILE *f, bool gimple) if (! has_kids_p) { if (gimple) @@ -80,7 +80,7 @@ index b2e01dee2fa..09548bdac29 100644 "gimple_simplify (gimple_match_op*, gimple_seq*,\n" " tree (*)(tree), code_helper,\n" " const tree"); -@@ -3978,7 +3978,7 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3980,7 +3980,7 @@ decision_tree::gen (FILE *f, bool gimple) /* Then generate the main entry with the outermost switch and tail-calls to the split-out functions. */ if (gimple) @@ -91,7 +91,7 @@ index b2e01dee2fa..09548bdac29 100644 " code_helper code, const tree type"); diff --git a/gcc/gimple-match-exports.cc b/gcc/gimple-match-exports.cc new file mode 100644 -index 00000000000..7aeb4ddb152 +index 000000000000..7aeb4ddb1524 --- /dev/null +++ b/gcc/gimple-match-exports.cc @@ -0,0 +1,1253 @@ @@ -1349,7 +1349,7 @@ index 00000000000..7aeb4ddb152 + return get_conditional_internal_fn (associated_internal_fn (cfn, type)); +} diff --git a/gcc/gimple-match-head.cc b/gcc/gimple-match-head.cc -index ec603f9d043..b08cd891a13 100644 +index ec603f9d043c..b08cd891a13a 100644 --- a/gcc/gimple-match-head.cc +++ b/gcc/gimple-match-head.cc @@ -48,1089 +48,8 @@ along with GCC; see the file COPYING3. If not see @@ -2556,5 +2556,5 @@ index ec603f9d043..b08cd891a13 100644 - return get_conditional_internal_fn (associated_internal_fn (cfn, type)); -} -- -2.40.1 +2.43.0 diff --git a/13.2.0/gentoo/80_all_match.pd-automatically-partition-match.cc-files.patch b/13.2.0/gentoo/80_all_match.pd-automatically-partition-match.cc-files.patch index 4b2fbe9..6cee0ce 100644 --- a/13.2.0/gentoo/80_all_match.pd-automatically-partition-match.cc-files.patch +++ b/13.2.0/gentoo/80_all_match.pd-automatically-partition-match.cc-files.patch @@ -1,9 +1,9 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 -From c9477580a0c0cb746aec323407ab6103518b8830 Mon Sep 17 00:00:00 2001 +From 0b9341cec30004016c4a66013882ea983a9e3810 Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 5 May 2023 13:38:50 +0100 -Subject: [PATCH 5/6] match.pd: automatically partition *-match.cc files. +Subject: [PATCH 06/14] match.pd: automatically partition *-match.cc files. Following on from Richi's RFC[1] this is another attempt to split up match.pd into multiple gimple-match and generic-match files. This version is fully @@ -111,7 +111,7 @@ gcc/ChangeLog: 1 file changed, 190 insertions(+), 36 deletions(-) diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc -index 09548bdac29..c5938148712 100644 +index 5320d4110082..6cb05d006e8d 100644 --- a/gcc/genmatch.cc +++ b/gcc/genmatch.cc @@ -183,6 +183,33 @@ fprintf_indent (FILE *f, unsigned int indent, const char *format, ...) @@ -195,7 +195,7 @@ index 09548bdac29..c5938148712 100644 void print (FILE *f = stderr); decision_tree () { root = new dt_node (dt_node::DT_NODE, NULL); } -@@ -3830,7 +3888,7 @@ sinfo_hashmap_traits::equal_keys (const key_type &v, +@@ -3832,7 +3890,7 @@ sinfo_hashmap_traits::equal_keys (const key_type &v, tree. */ void @@ -204,7 +204,7 @@ index 09548bdac29..c5938148712 100644 { sinfo_map_t si; -@@ -3859,11 +3917,14 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3861,11 +3919,14 @@ decision_tree::gen (FILE *f, bool gimple) output_line_directive (stderr, s->s->s->result->location); } @@ -220,7 +220,7 @@ index 09548bdac29..c5938148712 100644 "%s (gimple_match_op *res_op, gimple_seq *seq,\n" " tree (*valueize)(tree) ATTRIBUTE_UNUSED,\n" " const tree ARG_UNUSED (type), tree *ARG_UNUSED " -@@ -3871,27 +3932,28 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3873,27 +3934,28 @@ decision_tree::gen (FILE *f, bool gimple) s->fname); else { @@ -255,7 +255,7 @@ index 09548bdac29..c5938148712 100644 fprintf_indent (f, 2, "const bool debug_dump = " "dump_file && (dump_flags & TDF_FOLDING);\n"); s->s->gen_1 (f, 2, gimple, s->s->s->result); -@@ -3921,8 +3983,12 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3923,8 +3985,12 @@ decision_tree::gen (FILE *f, bool gimple) && e->operation->kind != id_base::CODE)) continue; @@ -269,7 +269,7 @@ index 09548bdac29..c5938148712 100644 "gimple_simplify_%s (gimple_match_op *res_op," " gimple_seq *seq,\n" " tree (*valueize)(tree) " -@@ -3931,13 +3997,13 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3933,13 +3999,13 @@ decision_tree::gen (FILE *f, bool gimple) "ARG_UNUSED (type)\n", e->operation->id); else @@ -286,7 +286,7 @@ index 09548bdac29..c5938148712 100644 fprintf (f, "{\n"); fprintf_indent (f, 2, "const bool debug_dump = " "dump_file && (dump_flags & TDF_FOLDING);\n"); -@@ -3954,18 +4020,22 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3956,18 +4022,22 @@ decision_tree::gen (FILE *f, bool gimple) with compiler warnings, by generating a simple stub. */ if (! has_kids_p) { @@ -313,7 +313,7 @@ index 09548bdac29..c5938148712 100644 fprintf (f, "{\n"); if (gimple) fprintf (f, " return false;\n"); -@@ -3975,20 +4045,24 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -3977,20 +4047,24 @@ decision_tree::gen (FILE *f, bool gimple) continue; } @@ -342,7 +342,7 @@ index 09548bdac29..c5938148712 100644 fprintf (f, "{\n"); if (gimple) -@@ -4043,11 +4117,11 @@ decision_tree::gen (FILE *f, bool gimple) +@@ -4045,11 +4119,11 @@ decision_tree::gen (FILE *f, bool gimple) void write_predicate (FILE *f, predicate_id *p, decision_tree &dt, bool gimple) { @@ -359,7 +359,7 @@ index 09548bdac29..c5938148712 100644 /* Conveniently make 'type' available. */ fprintf_indent (f, 2, "const tree type = TREE_TYPE (t);\n"); fprintf_indent (f, 2, "const bool debug_dump = " -@@ -4068,9 +4142,13 @@ write_header (FILE *f, const char *head) +@@ -4070,9 +4144,13 @@ write_header (FILE *f, const char *head) { fprintf (f, "/* Generated automatically by the program `genmatch' from\n"); fprintf (f, " a IL pattern matching and simplification description. */\n"); @@ -374,7 +374,7 @@ index 09548bdac29..c5938148712 100644 } -@@ -5213,6 +5291,30 @@ round_alloc_size (size_t s) +@@ -5215,6 +5293,30 @@ round_alloc_size (size_t s) } @@ -405,7 +405,7 @@ index 09548bdac29..c5938148712 100644 /* The genmatch generator program. It reads from a pattern description and outputs GIMPLE or GENERIC IL matching and simplification routines. */ -@@ -5227,25 +5329,44 @@ main (int argc, char **argv) +@@ -5229,25 +5331,44 @@ main (int argc, char **argv) return 1; bool gimple = true; @@ -454,7 +454,7 @@ index 09548bdac29..c5938148712 100644 line_table = XCNEW (class line_maps); linemap_init (line_table, 0); line_table->reallocator = xrealloc; -@@ -5292,10 +5413,28 @@ main (int argc, char **argv) +@@ -5294,10 +5415,28 @@ main (int argc, char **argv) /* Parse ahead! */ parser p (r, gimple); @@ -486,7 +486,7 @@ index 09548bdac29..c5938148712 100644 /* Go over all predicates defined with patterns and perform lowering and code generation. */ -@@ -5315,7 +5454,10 @@ main (int argc, char **argv) +@@ -5317,7 +5456,10 @@ main (int argc, char **argv) if (verbose == 2) dt.print (stderr); @@ -498,7 +498,7 @@ index 09548bdac29..c5938148712 100644 } /* Lower the main simplifiers and generate code for them. */ -@@ -5332,7 +5474,19 @@ main (int argc, char **argv) +@@ -5334,7 +5476,19 @@ main (int argc, char **argv) if (verbose == 2) dt.print (stderr); @@ -520,5 +520,5 @@ index 09548bdac29..c5938148712 100644 /* Finalize. */ cpp_finish (r, NULL); -- -2.40.1 +2.43.0 diff --git a/13.2.0/gentoo/81_all_match.pd-Use-splits-in-makefile-and-make-configurabl.patch b/13.2.0/gentoo/81_all_match.pd-Use-splits-in-makefile-and-make-configurabl.patch index 4a8bc46..8834897 100644 --- a/13.2.0/gentoo/81_all_match.pd-Use-splits-in-makefile-and-make-configurabl.patch +++ b/13.2.0/gentoo/81_all_match.pd-Use-splits-in-makefile-and-make-configurabl.patch @@ -1,9 +1,9 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 -From 3da0a672baeb52c5f7b736b47b2cc5f79ada86de Mon Sep 17 00:00:00 2001 +From 7ad6dc24f067e3ecf608143274c36b1eec51ba93 Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Fri, 5 May 2023 13:42:17 +0100 -Subject: [PATCH 6/6] match.pd: Use splits in makefile and make configurable. +Subject: [PATCH 07/14] match.pd: Use splits in makefile and make configurable. This updates the build system to split up match.pd files into chunks of 10. This also introduces a new flag --with-matchpd-partitions which can be used to @@ -31,7 +31,7 @@ gcc/ChangeLog: 3 files changed, 89 insertions(+), 22 deletions(-) diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index f5f189916c1..8e22857ed57 100644 +index 406856acde1c..f0c34d00ecbc 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -214,6 +214,14 @@ rtl-ssa-warn = $(STRICT_WARN) @@ -153,7 +153,7 @@ index f5f189916c1..8e22857ed57 100644 case-cfn-macros.h \ cfn-operators.pd omp-device-properties.h diff --git a/gcc/configure b/gcc/configure -index c7b26d1927d..843fd5449dd 100755 +index dec2eca1a453..2c124f1b0337 100755 --- a/gcc/configure +++ b/gcc/configure @@ -838,6 +838,7 @@ enable_gcov @@ -172,7 +172,7 @@ index c7b26d1927d..843fd5449dd 100755 enable___cxa_atexit enable_decimal_float enable_fixed_point -@@ -1826,6 +1828,9 @@ Optional Packages: +@@ -1832,6 +1834,9 @@ Optional Packages: --with-stack-clash-protection-guard-size=size Set the default stack clash protection guard size for specific targets as a power of two in bytes. @@ -182,7 +182,7 @@ index c7b26d1927d..843fd5449dd 100755 --with-dwarf2 force the default debug format to be DWARF 2 (or later) --with-specs=SPECS add SPECS to driver command-line processing -@@ -7889,6 +7894,26 @@ cat >>confdefs.h <<_ACEOF +@@ -7895,6 +7900,26 @@ cat >>confdefs.h <<_ACEOF _ACEOF @@ -209,26 +209,26 @@ index c7b26d1927d..843fd5449dd 100755 # Enable __cxa_atexit for C++. # Check whether --enable-__cxa_atexit was given. if test "${enable___cxa_atexit+set}" = set; then : -@@ -19825,7 +19850,7 @@ else +@@ -19848,7 +19873,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF --#line 19828 "configure" -+#line 19853 "configure" +-#line 19851 "configure" ++#line 19876 "configure" #include "confdefs.h" #if HAVE_DLFCN_H -@@ -19931,7 +19956,7 @@ else +@@ -19954,7 +19979,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF --#line 19934 "configure" -+#line 19959 "configure" +-#line 19957 "configure" ++#line 19982 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/gcc/configure.ac b/gcc/configure.ac -index 09082e8ccae..de5e3aef2c8 100644 +index c0d067ec2716..526ce0665a3e 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -921,6 +921,21 @@ fi @@ -254,5 +254,5 @@ index 09082e8ccae..de5e3aef2c8 100644 AC_ARG_ENABLE(__cxa_atexit, [AS_HELP_STRING([--enable-__cxa_atexit], [enable __cxa_atexit for C++])], -- -2.40.1 +2.43.0 diff --git a/13.2.0/gentoo/82_all_Makefile.in-clean-up-match.pd-related-dependencies.patch b/13.2.0/gentoo/82_all_Makefile.in-clean-up-match.pd-related-dependencies.patch new file mode 100644 index 0000000..950bfba --- /dev/null +++ b/13.2.0/gentoo/82_all_Makefile.in-clean-up-match.pd-related-dependencies.patch @@ -0,0 +1,60 @@ +From 88d7963056355a28adb9fc1b805752d422c2619e Mon Sep 17 00:00:00 2001 +From: Alexander Monakov +Date: Fri, 5 May 2023 19:46:25 +0300 +Subject: [PATCH 08/14] Makefile.in: clean up match.pd-related dependencies + +Clean up confusing changes from the recent refactoring for +parallel match.pd build. + +gimple-match-head.o is not built. Remove related flags adjustment. + +Autogenerated gimple-match-N.o files do not depend on +gimple-match-exports.cc. + +{gimple,generic)-match-auto.h only depend on the prerequisites of the +corresponding s-{gimple,generic}-match stamp file, not any .cc file. + +gcc/ChangeLog: + + * Makefile.in: (gimple-match-head.o-warn): Remove. + (GIMPLE_MATCH_PD_SEQ_SRC): Do not depend on + gimple-match-exports.cc. + (gimple-match-auto.h): Only depend on s-gimple-match. + (generic-match-auto.h): Likewise. + +(cherry picked from commit 31c70a7daa368767f0f58e0389deb2c69d9e14fd) +--- + gcc/Makefile.in | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index f0c34d00ecbc..fe3af5c8008c 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -230,7 +230,6 @@ gengtype-lex.o-warn = -Wno-error + libgcov-util.o-warn = -Wno-error + libgcov-driver-tool.o-warn = -Wno-error + libgcov-merge-tool.o-warn = -Wno-error +-gimple-match-head.o-warn = -Wno-unused + gimple-match-exports.o-warn = -Wno-unused + dfp.o-warn = -Wno-strict-aliasing + +@@ -2670,12 +2669,10 @@ s-tm-texi: build/genhooks$(build_exeext) $(srcdir)/doc/tm.texi.in + false; \ + fi + +-$(GIMPLE_MATCH_PD_SEQ_SRC): s-gimple-match gimple-match-head.cc \ +- gimple-match-exports.cc; @true +-gimple-match-auto.h: s-gimple-match gimple-match-head.cc \ +- gimple-match-exports.cc; @true ++$(GIMPLE_MATCH_PD_SEQ_SRC): s-gimple-match gimple-match-head.cc; @true ++gimple-match-auto.h: s-gimple-match; @true + $(GENERIC_MATCH_PD_SEQ_SRC): s-generic-match generic-match-head.cc; @true +-generic-match-auto.h: s-generic-match generic-match-head.cc; @true ++generic-match-auto.h: s-generic-match; @true + + s-gimple-match: build/genmatch$(build_exeext) \ + $(srcdir)/match.pd cfn-operators.pd +-- +2.43.0 + diff --git a/13.2.0/gentoo/README.history b/13.2.0/gentoo/README.history index 4b18bf0..0e54b6b 100644 --- a/13.2.0/gentoo/README.history +++ b/13.2.0/gentoo/README.history @@ -1,3 +1,13 @@ +11 ?? ??? 2023 + + U 76_all_match.pd-don-t-emit-label-if-not-needed.patch + U 77_all_match.pd-Remove-commented-out-line-pragmas-unless-vv.patch + U 78_all_match.pd-CSE-the-dump-output-check.patch + U 79_all_genmatch-split-shared-code-to-gimple-match-exports.c.patch + U 80_all_match.pd-automatically-partition-match.cc-files.patch + U 81_all_match.pd-Use-splits-in-makefile-and-make-configurabl.patch + + 82_all_Makefile.in-clean-up-match.pd-related-dependencies.patch + 10 28 Oct 2023 U 90_all_PR54179_genemit-Split-insn-emit.cc-into-ten-files.patch