Merge branch 'c8-beta' into a8-beta
This commit is contained in:
commit
401ab1a909
61
SOURCES/gcc8-pr111039.patch
Normal file
61
SOURCES/gcc8-pr111039.patch
Normal file
@ -0,0 +1,61 @@
|
||||
commit e150cbf591759af10f3d57acbe0eb381aafa00de
|
||||
Author: Richard Biener <rguenther@suse.de>
|
||||
Date: Thu Aug 17 13:10:14 2023 +0200
|
||||
|
||||
tree-optimization/111039 - abnormals and bit test merging
|
||||
|
||||
The following guards the bit test merging code in if-combine against
|
||||
the appearance of SSA names used in abnormal PHIs.
|
||||
|
||||
PR tree-optimization/111039
|
||||
* tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
|
||||
SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
|
||||
|
||||
* gcc.dg/pr111039.c: New testcase.
|
||||
|
||||
(cherry picked from commit 482551a79a3d3f107f6239679ee74655cfe8707e)
|
||||
|
||||
diff --git a/gcc/testsuite/gcc.dg/pr111039.c b/gcc/testsuite/gcc.dg/pr111039.c
|
||||
new file mode 100644
|
||||
index 00000000000..bec9983b35f
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gcc.dg/pr111039.c
|
||||
@@ -0,0 +1,15 @@
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O" } */
|
||||
+
|
||||
+int _setjmp ();
|
||||
+void abcd ();
|
||||
+void abcde ();
|
||||
+void compiler_corruption_function(int flags)
|
||||
+{
|
||||
+ int nowait = flags & 1048576, isexpand = flags & 8388608;
|
||||
+ abcd();
|
||||
+ _setjmp(flags);
|
||||
+ if (nowait && isexpand)
|
||||
+ flags &= 0;
|
||||
+ abcde();
|
||||
+}
|
||||
--- a/gcc/tree-ssa-ifcombine.c
|
||||
+++ b/gcc/tree-ssa-ifcombine.c
|
||||
@@ -407,6 +407,9 @@ ifcombine_ifandif (basic_block inner_con
|
||||
{
|
||||
tree t, t2;
|
||||
|
||||
+ if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1))
|
||||
+ return false;
|
||||
+
|
||||
/* Do it. */
|
||||
gsi = gsi_for_stmt (inner_cond);
|
||||
t = fold_build2 (LSHIFT_EXPR, TREE_TYPE (name1),
|
||||
@@ -457,6 +460,10 @@ ifcombine_ifandif (basic_block inner_con
|
||||
gimple_stmt_iterator gsi;
|
||||
tree t;
|
||||
|
||||
+ if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1)
|
||||
+ || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name2))
|
||||
+ return false;
|
||||
+
|
||||
/* Find the common name which is bit-tested. */
|
||||
if (name1 == name2)
|
||||
;
|
68
SOURCES/gcc8-pr111070.patch
Normal file
68
SOURCES/gcc8-pr111070.patch
Normal file
@ -0,0 +1,68 @@
|
||||
commit ad42dcf501e41713047cf6c47cbb1dd9f01088a4
|
||||
Author: Richard Biener <rguenther@suse.de>
|
||||
Date: Mon Aug 21 09:01:00 2023 +0200
|
||||
|
||||
tree-optimization/111070 - fix ICE with recent ifcombine fix
|
||||
|
||||
We now got test coverage for non-SSA name bits so the following amends
|
||||
the SSA_NAME_OCCURS_IN_ABNORMAL_PHI checks.
|
||||
|
||||
PR tree-optimization/111070
|
||||
* tree-ssa-ifcombine.cc (ifcombine_ifandif): Check we have
|
||||
an SSA name before checking SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
|
||||
|
||||
* gcc.dg/pr111070.c: New testcase.
|
||||
|
||||
(cherry picked from commit 966b0a96523fb7adbf498ac71df5e033c70dc546)
|
||||
|
||||
diff --git a/gcc/testsuite/gcc.dg/pr111070.c b/gcc/testsuite/gcc.dg/pr111070.c
|
||||
new file mode 100644
|
||||
index 00000000000..1ebc7adf782
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gcc.dg/pr111070.c
|
||||
@@ -0,0 +1,20 @@
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O" } */
|
||||
+
|
||||
+/* common */
|
||||
+char c;
|
||||
+/* arrays must be 8 byte aligned, regardless of size */
|
||||
+char c_ary[1];
|
||||
+
|
||||
+/* data */
|
||||
+char d = 1;
|
||||
+char d_ary[1] = {1};
|
||||
+
|
||||
+int main ()
|
||||
+{
|
||||
+ if (((unsigned long)&c_ary[0] & 7) != 0)
|
||||
+ return 1;
|
||||
+ if (((unsigned long)&d_ary[0] & 7) != 0)
|
||||
+ return 1;
|
||||
+ return 0;
|
||||
+}
|
||||
--- a/gcc/tree-ssa-ifcombine.c
|
||||
+++ b/gcc/tree-ssa-ifcombine.c
|
||||
@@ -436,7 +436,8 @@ ifcombine_ifandif (basic_block inner_cond_bb, bool inner_inv,
|
||||
{
|
||||
tree t, t2;
|
||||
|
||||
- if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1))
|
||||
+ if (TREE_CODE (name1) == SSA_NAME
|
||||
+ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1))
|
||||
return false;
|
||||
|
||||
/* Do it. */
|
||||
@@ -495,8 +496,10 @@ ifcombine_ifandif (basic_block inner_cond_bb, bool inner_inv,
|
||||
gimple_stmt_iterator gsi;
|
||||
tree t;
|
||||
|
||||
- if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1)
|
||||
- || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name2))
|
||||
+ if ((TREE_CODE (name1) == SSA_NAME
|
||||
+ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1))
|
||||
+ || (TREE_CODE (name2) == SSA_NAME
|
||||
+ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name2)))
|
||||
return false;
|
||||
|
||||
/* Find the common name which is bit-tested. */
|
@ -4,7 +4,7 @@
|
||||
%global gcc_major 8
|
||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||
# %%{release}, append them after %%{gcc_release} on Release: line.
|
||||
%global gcc_release 20
|
||||
%global gcc_release 21
|
||||
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
||||
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
@ -104,7 +104,7 @@
|
||||
Summary: Various compilers (C, C++, Objective-C, ...)
|
||||
Name: gcc
|
||||
Version: %{gcc_version}
|
||||
Release: %{gcc_release}%{?dist}.alma
|
||||
Release: %{gcc_release}%{?dist}.alma.1
|
||||
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
|
||||
# GCC Runtime Exception.
|
||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
|
||||
@ -304,6 +304,8 @@ Patch43: gcc8-s390x-regarg-3.patch
|
||||
Patch44: gcc8-rh2213753.patch
|
||||
Patch45: gcc8-pr99074.patch
|
||||
Patch46: gcc8-pr87723.patch
|
||||
Patch47: gcc8-pr111039.patch
|
||||
Patch48: gcc8-pr111070.patch
|
||||
|
||||
Patch1000: nvptx-tools-no-ptxas.patch
|
||||
Patch1001: nvptx-tools-build.patch
|
||||
@ -925,6 +927,8 @@ so that there cannot be any synchronization problems.
|
||||
%patch44 -p1 -b .rh2213753~
|
||||
%patch45 -p1 -b .pr99074~
|
||||
%patch46 -p1 -b .pr87723~
|
||||
%patch47 -p1 -b .pr111039~
|
||||
%patch48 -p1 -b .pr111070~
|
||||
|
||||
cd nvptx-tools-%{nvptx_tools_gitrev}
|
||||
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
|
||||
@ -2676,7 +2680,7 @@ fi
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o
|
||||
%endif
|
||||
%{_prefix}/libexec/getconf/default
|
||||
%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog*
|
||||
%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog*
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license gcc/COPYING* COPYING.RUNTIME
|
||||
|
||||
@ -3332,18 +3336,23 @@ fi
|
||||
%{ANNOBIN_GCC_PLUGIN_DIR}/gcc-annobin.so.0.0.0
|
||||
|
||||
%changelog
|
||||
* Wed Sep 27 2023 Eduard Abdullin <eabdullin@almalinux.org> - 8.5.0-20.alma
|
||||
* Wed Mar 27 2024 Eduard Abdullin <eabdullin@almalinux.org> - 8.5.0-21.alma.1
|
||||
- AlmaLinux changes
|
||||
|
||||
* Wed Oct 4 2023 Marek Polacek <polacek@redhat.com> 8.5.0-21
|
||||
- guard the bit test merging code in if-combine (RHEL-11483)
|
||||
|
||||
* Wed Jun 14 2023 Marek Polacek <polacek@redhat.com> 8.5.0-20
|
||||
- fix for TLSLD references (#2213753)
|
||||
- fix crash in dynamic_cast<>() on null pointer (PR c++/99074, #2211506)
|
||||
- adjust a pattern in s390.md (PR target/87723, #2214847)
|
||||
|
||||
* Tue Apr 4 2023 Marek Polacek <polacek@redhat.com> 8.5.0-19
|
||||
- s390x: add support for register arguments preserving (#2168205)
|
||||
|
||||
* Tue Dec 6 2022 Marek Polacek <polacek@redhat.com> 8.5.0-18
|
||||
- fix strlen range with a flexible member array (#2137448)
|
||||
|
||||
* Mon Oct 3 2022 Marek Polacek <polacek@redhat.com> 8.5.0-17
|
||||
- fix deserialization for std::normal_distribution (#2130392,
|
||||
PR libstdc++/105502)
|
||||
|
Loading…
Reference in New Issue
Block a user