diff options
author | Sam James <sam@gentoo.org> | 2024-08-02 21:39:09 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-08-02 21:39:09 +0100 |
commit | 831195db0373e4954ff47452375844caf997e34b (patch) | |
tree | 7b50d6e697f3d9703ce2427d91d244a63f06997b /15.0.0 | |
parent | 15.0.0: drop 79_all_PR116120-revert-match-pattern.patch (diff) | |
download | gcc-patches-831195db0373e4954ff47452375844caf997e34b.tar.gz gcc-patches-831195db0373e4954ff47452375844caf997e34b.tar.bz2 gcc-patches-831195db0373e4954ff47452375844caf997e34b.zip |
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@gentoo.org>
Diffstat (limited to '15.0.0')
-rw-r--r-- | 15.0.0/gentoo/79_all_Revert-Make-may_trap_p_1-return-false-for-constant-p.patch | 98 |
1 files changed, 98 insertions, 0 deletions
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.sam@gentoo.org> +From: Sam James <sam@gentoo.org> +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 + |