commit:     831195db0373e4954ff47452375844caf997e34b
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  2 20:39:09 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Aug  2 20:39:09 2024 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=831195db

15.0.0: add 79_all_Revert-Make-may_trap_p_1-return-false-for-constant-p.patch

Bug: https://gcc.gnu.org/PR116200
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...-may_trap_p_1-return-false-for-constant-p.patch | 98 ++++++++++++++++++++++
 1 file changed, 98 insertions(+)

diff --git 
a/15.0.0/gentoo/79_all_Revert-Make-may_trap_p_1-return-false-for-constant-p.patch
 
b/15.0.0/gentoo/79_all_Revert-Make-may_trap_p_1-return-false-for-constant-p.patch
new file mode 100644
index 0000000..c65b792
--- /dev/null
+++ 
b/15.0.0/gentoo/79_all_Revert-Make-may_trap_p_1-return-false-for-constant-p.patch
@@ -0,0 +1,98 @@
+From 4def9ea5a1511d6adbbd15e59f2542326484454a Mon Sep 17 00:00:00 2001
+Message-ID: 
<4def9ea5a1511d6adbbd15e59f2542326484454a.1722631128.git....@gentoo.org>
+From: Sam James <[email protected]>
+Date: Fri, 2 Aug 2024 21:38:28 +0100
+Subject: [PATCH] Revert "Make may_trap_p_1 return false for constant pool
+ references [PR116145]"
+
+This reverts commit ba730fd10934e4ca004251aa3748bf9da4d35e62.
+
+Bug: https://gcc.gnu.org/PR116200
+---
+ gcc/rtlanal.cc                                | 14 ++----
+ .../aarch64/sve/acle/general/pr116145.c       | 46 -------------------
+ 2 files changed, 4 insertions(+), 56 deletions(-)
+ delete mode 100644 
gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr116145.c
+
+diff --git a/gcc/rtlanal.cc b/gcc/rtlanal.cc
+index 893a6afbbc53..4158a531bdd7 100644
+--- a/gcc/rtlanal.cc
++++ b/gcc/rtlanal.cc
+@@ -3152,16 +3152,10 @@ may_trap_p_1 (const_rtx x, unsigned flags)
+         && MEM_VOLATILE_P (x)
+         && XEXP (x, 0) == stack_pointer_rtx)
+       return true;
+-      if (/* MEM_READONLY_P means that the memory is both statically
+-           allocated and readonly, so MEM_NOTRAP_P should remain true
+-           even if the memory reference is moved.  This is certainly
+-           true for the important case of force_const_mem.
+-
+-           Otherwise, MEM_NOTRAP_P only relates to the actual position
+-           of the memory reference; moving it out of context such as
+-           when moving code when optimizing, might cause its address
+-           to become invalid.  */
+-        (code_changed && !MEM_READONLY_P (x))
++      if (/* MEM_NOTRAP_P only relates to the actual position of the memory
++           reference; moving it out of context such as when moving code
++           when optimizing, might cause its address to become invalid.  */
++        code_changed
+         || !MEM_NOTRAP_P (x))
+       {
+         poly_int64 size = MEM_SIZE_KNOWN_P (x) ? MEM_SIZE (x) : -1;
+diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr116145.c 
b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr116145.c
+deleted file mode 100644
+index a3d93d3e1c84..000000000000
+--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr116145.c
++++ /dev/null
+@@ -1,46 +0,0 @@
+-// { dg-options "-O2" }
+-
+-#include <stdlib.h>
+-#include <arm_sve.h>
+-
+-#pragma GCC target "+sve2"
+-
+-typedef unsigned char uchar;
+-
+-const uchar *
+-search_line_fast (const uchar *s, const uchar *end)
+-{
+-  size_t VL = svcntb();
+-  svuint8_t arr1, arr2;
+-  svbool_t pc, pg = svptrue_b8();
+-
+-  // This should not be loaded inside the loop every time.
+-  arr2 = svreinterpret_u8(svdup_u32(0x0a0d5c3f));
+-
+-  for (; s+VL <= end; s += VL) {
+-    arr1 = svld1_u8(pg, s);
+-    pc = svmatch_u8(pg, arr1, arr2);
+-
+-    if (svptest_any(pg, pc)) {
+-      pc = svbrkb_z(pg, pc);
+-      return s+svcntp_b8(pg, pc);
+-    }
+-  }
+-
+-  // Handle remainder.
+-  if (s < end) {
+-    pg = svwhilelt_b8((size_t)s, (size_t)end);
+-
+-    arr1 = svld1_u8(pg, s);
+-    pc = svmatch_u8(pg, arr1, arr2);
+-
+-    if (svptest_any(pg, pc)) {
+-      pc = svbrkb_z(pg, pc);
+-      return s+svcntp_b8(pg, pc);
+-    }
+-  }
+-
+-  return end;
+-}
+-
+-// { dg-final { scan-assembler {:\n\tld1b\t[^\n]*\n\tmatch\t[^\n]*\n\tb\.} } }
+
+base-commit: 5ebfaf2d4994c124ce81aa0abd7eaa1529644749
+-- 
+2.45.2
+

Reply via email to