commit:     fb8f673f9192b2520453a54528d7ecb824a2351c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 20 01:57:29 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec 20 01:57:29 2025 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=fb8f673f

16.0.0: drop upstream patch

Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...87_all_PR123152-vect-Fix-dominator-update.patch | 191 ---------------------
 16.0.0/gentoo/README.history                       |   1 -
 2 files changed, 192 deletions(-)

diff --git a/16.0.0/gentoo/87_all_PR123152-vect-Fix-dominator-update.patch 
b/16.0.0/gentoo/87_all_PR123152-vect-Fix-dominator-update.patch
deleted file mode 100644
index ec49559..0000000
--- a/16.0.0/gentoo/87_all_PR123152-vect-Fix-dominator-update.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From bbc6e76e466d8352d8651eaf30a3c448e2e1e0a2 Mon Sep 17 00:00:00 2001
-Message-ID: 
<bbc6e76e466d8352d8651eaf30a3c448e2e1e0a2.1766072630.git....@gentoo.org>
-From: Victor Do Nascimento <[email protected]>
-Date: Thu, 18 Dec 2025 14:54:14 +0000
-Subject: [PATCH] vect: Fix dominator update [PR123152]
-
-The `recompute_dominator' function used in the code fragment within
-this patch assumes correctness in the rest of the CFG. Consequently,
-it is wrong to rely upon it before the subsequent updates are made in
-the "Update dominators for multiple exits" loop in the function.
-
-Furthermore, if `loop_exit' == `scalar_exit', the "Update dominators for
-multiple exits" logic will already take care of updating the
-dominator for `scalar_exit->dest', such that the moved statement is
-unnecessary.
-
-gcc/ChangeLog:
-
-       PR tree-optimization/123152
-       * tree-vect-loop-manip.cc
-       (slpeel_tree_duplicate_loop_to_edge_cfg): Correct order of
-       dominator update
-
-gcc/testsuite/ChangeLog:
-
-* gcc.dg/vect/vect-uncounted-prolog-peel_2.c: New.
-       * gcc.dg/vect/vect-uncounted-prolog-peel_3.c: Likewise.
-       * g++.dg/vect/vect-uncounted-prolog-peel_1.cc: Likewise.
----
- .../vect/vect-uncounted-prolog-peel_1.cc      | 51 +++++++++++++++++++
- .../vect/vect-uncounted-prolog-peel_2.c       | 25 +++++++++
- .../vect/vect-uncounted-prolog-peel_3.c       | 26 ++++++++++
- gcc/tree-vect-loop-manip.cc                   | 10 ++--
- 4 files changed, 107 insertions(+), 5 deletions(-)
- create mode 100644 gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc
- create mode 100644 gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_2.c
- create mode 100644 gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_3.c
-
-diff --git a/gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc 
b/gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc
-new file mode 100644
-index 000000000000..07335a23567a
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc
-@@ -0,0 +1,51 @@
-+/* { dg-add-options vect_early_break } */
-+/* { dg-do compile } */
-+/* { dg-require-effective-target vect_early_break } */
-+/* { dg-require-effective-target vect_int } */
-+/* { dg-additional-options "-w" } */
-+
-+namespace a {
-+class b {
-+public:
-+  b d(long);
-+};
-+class e : public b {};
-+typedef short f;
-+typedef struct g *h;
-+typedef struct g {
-+  f c;
-+  e *fp;
-+  f j, *k, *l;
-+} m;
-+static h n(m *, unsigned, unsigned *);
-+f o(m *, unsigned);
-+void p(short *t) {
-+  m *ffile;
-+  int q;
-+  unsigned r;
-+  int i;
-+  q = t[i];
-+  n(ffile, q, &r);
-+}
-+h n(m *ffile, unsigned q, unsigned *) {
-+  h glyph;
-+  for (; glyph;)
-+    if (glyph->c)
-+      o(ffile, q);
-+  int i;
-+s:
-+  for (i = 0; ffile->j; i++)
-+    if (ffile->k[i]) {
-+      if (q)
-+        ffile->fp->d(ffile->l[i]);
-+      break;
-+    }
-+  if (q < 6) {
-+    q += 61440;
-+    goto s;
-+  }
-+}
-+} // namespace a
-+
-+/* { dg-final { scan-tree-dump {note:\s*Alignment of access forced using 
peeling.} "vect" } } */
-+/* { dg-final { scan-tree-dump {vectorized 1 loops in function} "vect" } } */
-diff --git a/gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_2.c 
b/gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_2.c
-new file mode 100644
-index 000000000000..a9390c401f08
---- /dev/null
-+++ b/gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_2.c
-@@ -0,0 +1,25 @@
-+/* { dg-add-options vect_early_break } */
-+/* { dg-do compile } */
-+/* { dg-require-effective-target vect_early_break } */
-+/* { dg-require-effective-target vect_int } */
-+
-+char b;
-+int c(char *d) {
-+  int *a = 0;
-+  while (*d) {
-+    while (*a)
-+      if (*a++ == 1)
-+        return 1;
-+    d++;
-+  }
-+}
-+void e() {
-+  c(&b);
-+  char *f = &b;
-+  while (f[0])
-+    ++b;
-+}
-+
-+/* { dg-final { scan-tree-dump {note:\s*Alignment of access forced using 
peeling.} "vect" } } */
-+/* { dg-final { scan-tree-dump {if \(ivtmp_[0-9_]+ >= 
prolog_loop_niters.[0-9_]+\)\n\s*goto} "vect" } } */
-+/* { dg-final { scan-tree-dump {vectorized 1 loops in function} "vect" } } */
-diff --git a/gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_3.c 
b/gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_3.c
-new file mode 100644
-index 000000000000..4d842ebd9094
---- /dev/null
-+++ b/gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_3.c
-@@ -0,0 +1,26 @@
-+/* { dg-add-options vect_early_break } */
-+/* { dg-do compile } */
-+/* { dg-require-effective-target vect_early_break } */
-+/* { dg-require-effective-target vect_int } */
-+
-+struct {
-+  int segments[];
-+} seek_to_sample_coarse_f;
-+
-+int seek_to_sample_coarse_i, seek_to_sample_coarse_f_1;
-+
-+void seek_to_sample_coarse() {
-+  int end_pos = seek_to_sample_coarse_f_1;
-+  for (;;) {
-+    seek_to_sample_coarse_i = end_pos;
-+    for (; end_pos > 0; --end_pos)
-+      if (seek_to_sample_coarse_f.segments[end_pos - 1])
-+        break;
-+    if (end_pos)
-+      break;
-+  }
-+}
-+
-+/* { dg-final { scan-tree-dump {note:\s*Alignment of access forced using 
peeling.} "vect" } } */
-+/* { dg-final { scan-tree-dump {if \(ivtmp_[0-9_]+ >= 
prolog_loop_niters.[0-9_]+\)\n\s*goto} "vect" } } */
-+/* { dg-final { scan-tree-dump {vectorized 1 loops in function} "vect" } } */
-diff --git a/gcc/tree-vect-loop-manip.cc b/gcc/tree-vect-loop-manip.cc
-index e2ea0426050e..99f69d3376b1 100644
---- a/gcc/tree-vect-loop-manip.cc
-+++ b/gcc/tree-vect-loop-manip.cc
-@@ -1989,11 +1989,6 @@ slpeel_tree_duplicate_loop_to_edge_cfg (class loop 
*loop, edge loop_exit,
-       flush_pending_stmts (new_exit);
-       set_immediate_dominator (CDI_DOMINATORS, preheader, new_exit->src);
- 
--      if (create_main_e)
--      set_immediate_dominator (CDI_DOMINATORS, scalar_exit->dest,
--                               recompute_dominator (CDI_DOMINATORS,
--                                                    scalar_exit->dest));
--
-       /* And remove the non-necessary forwarder again.  Keep the other
-          one so we have a proper pre-header for the loop at the exit edge.  */
-       redirect_edge_pred (single_succ_edge (new_preheader),
-@@ -2024,6 +2019,11 @@ slpeel_tree_duplicate_loop_to_edge_cfg (class loop 
*loop, edge loop_exit,
-               }
-           }
-       }
-+
-+      if (create_main_e && (loop_exit != scalar_exit))
-+      set_immediate_dominator (CDI_DOMINATORS, scalar_exit->dest,
-+                               recompute_dominator (CDI_DOMINATORS,
-+                                                    scalar_exit->dest));
-     }
- 
-   free (new_bbs);
-
-base-commit: 1c555ba67a34ced2460a065eac05ae2e2693ca4d
--- 
-2.52.0
-

diff --git a/16.0.0/gentoo/README.history b/16.0.0/gentoo/README.history
index 5277f5a..82f7362 100644
--- a/16.0.0/gentoo/README.history
+++ b/16.0.0/gentoo/README.history
@@ -2,7 +2,6 @@
 
        - 86_all_PR122456-pgo-workaround.patch
        + 86_all_PR122794-libtool.patch
-       + 87_all_PR123152-vect-Fix-dominator-update.patch
        + 88_all_PR123089.patch
 
 27     14 December 2025

Reply via email to