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 DF99D15852A for ; Tue, 20 Aug 2024 20:31:08 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E893DE2A03; Tue, 20 Aug 2024 20:31:07 +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 pigeon.gentoo.org (Postfix) with ESMTPS id C52D7E2A03 for ; Tue, 20 Aug 2024 20:31:07 +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) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id E940533FE7D for ; Tue, 20 Aug 2024 20:31:06 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id EB0D418EB for ; Tue, 20 Aug 2024 20:31: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: <1724185842.c9cf4331e4dfb52d6752adf48c161060fe6ef00a.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/32_all_phi-opt-Fix-for-non-const-functions-for-factor_out_c.patch 15.0.0/gentoo/33_all_phiopt-Reject-non-gimple-val-inside-factor_out_condi.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: c9cf4331e4dfb52d6752adf48c161060fe6ef00a X-VCS-Branch: master Date: Tue, 20 Aug 2024 20:31: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: 1099636a-e252-4c68-a5b9-08870060964e X-Archives-Hash: 22b002d71254b13f453c6ba258aba0a0 commit: c9cf4331e4dfb52d6752adf48c161060fe6ef00a Author: Sam James gentoo org> AuthorDate: Tue Aug 20 20:30:42 2024 +0000 Commit: Sam James gentoo org> CommitDate: Tue Aug 20 20:30:42 2024 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=c9cf4331 15.0.0: drop now-upstream phiopt patches Signed-off-by: Sam James gentoo.org> ...-for-non-const-functions-for-factor_out_c.patch | 100 --------------------- ...ct-non-gimple-val-inside-factor_out_condi.patch | 64 ------------- 15.0.0/gentoo/README.history | 5 ++ 3 files changed, 5 insertions(+), 164 deletions(-) diff --git a/15.0.0/gentoo/32_all_phi-opt-Fix-for-non-const-functions-for-factor_out_c.patch b/15.0.0/gentoo/32_all_phi-opt-Fix-for-non-const-functions-for-factor_out_c.patch deleted file mode 100644 index 1920001..0000000 --- a/15.0.0/gentoo/32_all_phi-opt-Fix-for-non-const-functions-for-factor_out_c.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 8d5c584e088109e39402221f59c2330b24bed142 Mon Sep 17 00:00:00 2001 -Message-ID: <8d5c584e088109e39402221f59c2330b24bed142.1724092858.git.sam@gentoo.org> -From: Andrew Pinski -Date: Mon, 19 Aug 2024 11:37:13 -0700 -Subject: [PATCH 1/2] phi-opt: Fix for non-const functions for - factor_out_conditional_operation [PR 116409] - -Currently maybe_push_res_to_seq does not handle non-const builtins (it does handle internal -functions though). So we need to disable factoring out non-const builtins. This will be fixed in -a better way later but this fixes the regression at hand and does not change what was goal on -moving factor_out_conditional_operation over to use gimple_match_op. - -Bootstrapped and tested on x86_64-linux-gnu with no regressions. - - PR tree-optimization/116409 - -gcc/ChangeLog: - - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Reject - non const builtins (except for internal functions). - -gcc/testsuite/ChangeLog: - - * gcc.dg/torture/pr116409-1.c: New test. - * gcc.dg/torture/pr116409-2.c: New test. - -Signed-off-by: Andrew Pinski ---- - gcc/testsuite/gcc.dg/torture/pr116409-1.c | 7 +++++++ - gcc/testsuite/gcc.dg/torture/pr116409-2.c | 7 +++++++ - gcc/tree-ssa-phiopt.cc | 18 ++++++++++++++++++ - 3 files changed, 32 insertions(+) - create mode 100644 gcc/testsuite/gcc.dg/torture/pr116409-1.c - create mode 100644 gcc/testsuite/gcc.dg/torture/pr116409-2.c - -diff --git a/gcc/testsuite/gcc.dg/torture/pr116409-1.c b/gcc/testsuite/gcc.dg/torture/pr116409-1.c -new file mode 100644 -index 000000000000..7bf8d49c9a01 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/torture/pr116409-1.c -@@ -0,0 +1,7 @@ -+/* { dg-do compile } */ -+/* { dg-additional-options "-frounding-math -fno-math-errno" } */ -+double f(int c, double a, double b) { -+ if (c) -+ return __builtin_sqrt(a); -+ return __builtin_sqrt(b); -+} -diff --git a/gcc/testsuite/gcc.dg/torture/pr116409-2.c b/gcc/testsuite/gcc.dg/torture/pr116409-2.c -new file mode 100644 -index 000000000000..c27f11312d98 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/torture/pr116409-2.c -@@ -0,0 +1,7 @@ -+/* { dg-do compile } */ -+ -+int f (int t, char *a, char *b) { -+ if (t) -+ return __builtin_strlen (a); -+ return __builtin_strlen (b); -+} -diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc -index 2d4aba5b0872..770f3629fe1d 100644 ---- a/gcc/tree-ssa-phiopt.cc -+++ b/gcc/tree-ssa-phiopt.cc -@@ -54,6 +54,7 @@ along with GCC; see the file COPYING3. If not see - #include "dbgcnt.h" - #include "tree-ssa-propagate.h" - #include "tree-ssa-dce.h" -+#include "calls.h" - - /* Return the singleton PHI in the SEQ of PHIs for edges E0 and E1. */ - -@@ -367,6 +368,23 @@ factor_out_conditional_operation (edge e0, edge e1, gphi *phi, - if (!types_compatible_p (TREE_TYPE (new_arg0), TREE_TYPE (new_arg1))) - return NULL; - -+ /* Function calls can only be const or an internal function -+ as maybe_push_res_to_seq only handles those currently. */ -+ if (!arg0_op.code.is_tree_code ()) -+ { -+ auto fn = combined_fn (arg0_op.code); -+ if (!internal_fn_p (fn)) -+ { -+ tree decl = builtin_decl_implicit (as_builtin_fn (fn)); -+ if (!decl) -+ return NULL; -+ -+ /* Non-const functions are not supported currently. */ -+ if (!(flags_from_decl_or_type (decl) & ECF_CONST)) -+ return NULL; -+ } -+ } -+ - /* Create a new PHI stmt. */ - result = PHI_RESULT (phi); - temp = make_ssa_name (TREE_TYPE (new_arg0), NULL); --- -2.46.0 - diff --git a/15.0.0/gentoo/33_all_phiopt-Reject-non-gimple-val-inside-factor_out_condi.patch b/15.0.0/gentoo/33_all_phiopt-Reject-non-gimple-val-inside-factor_out_condi.patch deleted file mode 100644 index b3f96ae..0000000 --- a/15.0.0/gentoo/33_all_phiopt-Reject-non-gimple-val-inside-factor_out_condi.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 555a5e896480884c3fe2c6c117654a798b8ffd3f Mon Sep 17 00:00:00 2001 -Message-ID: <555a5e896480884c3fe2c6c117654a798b8ffd3f.1724092858.git.sam@gentoo.org> -In-Reply-To: <8d5c584e088109e39402221f59c2330b24bed142.1724092858.git.sam@gentoo.org> -References: <8d5c584e088109e39402221f59c2330b24bed142.1724092858.git.sam@gentoo.org> -From: Andrew Pinski -Date: Mon, 19 Aug 2024 11:37:14 -0700 -Subject: [PATCH 2/2] phiopt: Reject non gimple val inside - factor_out_conditional_operation [PR116412] - -After the conversion to use maybe_push_res_to_seq, sometimes (REALPART_EXPR -and IMAGPART_EXPR and VCE) the argument will not be a gimple value and -then phiopt here would create an invalid PHI. -Just add a check for gimple val is the way to fix this. - -Bootstrapped and tested on x86_64-linux-gnu. - - PR tree-optimization/116412 - -gcc/ChangeLog: - - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Make sure new_arg0 - and new_arg1 are both gimple values. - -gcc/testsuite/ChangeLog: - - * gcc.dg/torture/pr116412-1.c: New test. - -Signed-off-by: Andrew Pinski ---- - gcc/testsuite/gcc.dg/torture/pr116412-1.c | 6 ++++++ - gcc/tree-ssa-phiopt.cc | 4 ++++ - 2 files changed, 10 insertions(+) - create mode 100644 gcc/testsuite/gcc.dg/torture/pr116412-1.c - -diff --git a/gcc/testsuite/gcc.dg/torture/pr116412-1.c b/gcc/testsuite/gcc.dg/torture/pr116412-1.c -new file mode 100644 -index 000000000000..3bc26ecd8b83 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/torture/pr116412-1.c -@@ -0,0 +1,6 @@ -+/* { dg-do compile } */ -+double f(_Complex double a, _Complex double *b, int c) -+{ -+ if (c) return __real__ a; -+ return __real__ *b; -+} -diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc -index 770f3629fe1d..be95798a065b 100644 ---- a/gcc/tree-ssa-phiopt.cc -+++ b/gcc/tree-ssa-phiopt.cc -@@ -368,6 +368,10 @@ factor_out_conditional_operation (edge e0, edge e1, gphi *phi, - if (!types_compatible_p (TREE_TYPE (new_arg0), TREE_TYPE (new_arg1))) - return NULL; - -+ /* The new args need to be both gimple values. */ -+ if (!is_gimple_val (new_arg0) || !is_gimple_val (new_arg1)) -+ return NULL; -+ - /* Function calls can only be const or an internal function - as maybe_push_res_to_seq only handles those currently. */ - if (!arg0_op.code.is_tree_code ()) --- -2.46.0 - diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history index 0c430eb..82e55aa 100644 --- a/15.0.0/gentoo/README.history +++ b/15.0.0/gentoo/README.history @@ -1,3 +1,8 @@ +11 ???? + + - 32_all_phi-opt-Fix-for-non-const-functions-for-factor_out_c.patch + - 33_all_phiopt-Reject-non-gimple-val-inside-factor_out_condi.patch + 10 19 August 2024 + 32_all_phi-opt-Fix-for-non-const-functions-for-factor_out_c.patch