commit:     c9cf4331e4dfb52d6752adf48c161060fe6ef00a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 20 20:30:42 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> 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 <sam <AT> 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....@gentoo.org>
-From: Andrew Pinski <[email protected]>
-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 <[email protected]>
----
- 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....@gentoo.org>
-In-Reply-To: 
<8d5c584e088109e39402221f59c2330b24bed142.1724092858.git....@gentoo.org>
-References: 
<8d5c584e088109e39402221f59c2330b24bed142.1724092858.git....@gentoo.org>
-From: Andrew Pinski <[email protected]>
-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 <[email protected]>
----
- 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

Reply via email to