import UBI gcc-8.5.0-24.el8_10
This commit is contained in:
parent
e0e51a5297
commit
7c8ed82045
74
SOURCES/gcc8-pr100508.patch
Normal file
74
SOURCES/gcc8-pr100508.patch
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
commit ba374dfb937a8ac1c7c4740913331951a924f88b
|
||||||
|
Author: Jakub Jelinek <jakub@redhat.com>
|
||||||
|
Date: Wed May 12 10:38:35 2021 +0200
|
||||||
|
|
||||||
|
expand: Don't reuse DEBUG_EXPRs with vector type if they have different modes [PR100508]
|
||||||
|
|
||||||
|
The inliner doesn't remap DEBUG_EXPR_DECLs, so the same decls can appear
|
||||||
|
in multiple functions.
|
||||||
|
Furthermore, expansion reuses corresponding DEBUG_EXPRs too, so they again
|
||||||
|
can be reused in multiple functions.
|
||||||
|
Neither of that is a major problem, DEBUG_EXPRs are just magic value holders
|
||||||
|
and what value they stand for is independent in each function and driven by
|
||||||
|
what debug stmts or DEBUG_INSNs they are bound to.
|
||||||
|
Except for DEBUG_EXPR*s with vector types, TYPE_MODE can be either BLKmode
|
||||||
|
or some vector mode depending on whether current function's enabled ISAs
|
||||||
|
support that vector mode or not. On the following testcase, we expand it
|
||||||
|
first in foo function without AVX2 enabled and so the DEBUG_EXPR is
|
||||||
|
BLKmode, but later the same DEBUG_EXPR_DECL is used in a simd clone with
|
||||||
|
AVX2 enabled and expansion ICEs because of a mode mismatch.
|
||||||
|
|
||||||
|
The following patch fixes that by forcing recreation of a DEBUG_EXPR if
|
||||||
|
there is a mode mismatch for vector typed DEBUG_EXPR_DECL, DEBUG_EXPRs
|
||||||
|
will be still reused in between functions otherwise and within the same
|
||||||
|
function the mode should be always the same.
|
||||||
|
|
||||||
|
2021-05-12 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR middle-end/100508
|
||||||
|
* cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
|
||||||
|
type, don't reuse DECL_RTL if it has different mode, instead force
|
||||||
|
creation of a new DEBUG_EXPR.
|
||||||
|
|
||||||
|
* gcc.dg/gomp/pr100508.c: New test.
|
||||||
|
|
||||||
|
(cherry picked from commit 19040050aa2c8ee890fc58dda48639fc91bf0af0)
|
||||||
|
|
||||||
|
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
|
||||||
|
index b1535e15d28..a7d05202184 100644
|
||||||
|
--- a/gcc/cfgexpand.c
|
||||||
|
+++ b/gcc/cfgexpand.c
|
||||||
|
@@ -4358,7 +4358,12 @@ expand_debug_expr (tree exp)
|
||||||
|
op0 = DECL_RTL_IF_SET (exp);
|
||||||
|
|
||||||
|
if (op0)
|
||||||
|
- return op0;
|
||||||
|
+ {
|
||||||
|
+ if (GET_MODE (op0) != mode)
|
||||||
|
+ gcc_assert (VECTOR_TYPE_P (TREE_TYPE (exp)));
|
||||||
|
+ else
|
||||||
|
+ return op0;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
op0 = gen_rtx_DEBUG_EXPR (mode);
|
||||||
|
DEBUG_EXPR_TREE_DECL (op0) = exp;
|
||||||
|
diff --git a/gcc/testsuite/gcc.dg/gomp/pr100508.c b/gcc/testsuite/gcc.dg/gomp/pr100508.c
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..c3fa2fc258e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gcc/testsuite/gcc.dg/gomp/pr100508.c
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+/* PR middle-end/100508 */
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+/* { dg-options "-O2 -g -fopenmp-simd" } */
|
||||||
|
+
|
||||||
|
+typedef int __attribute__((__vector_size__(32))) V;
|
||||||
|
+V j;
|
||||||
|
+
|
||||||
|
+#pragma omp declare simd
|
||||||
|
+int
|
||||||
|
+foo (void)
|
||||||
|
+{
|
||||||
|
+ V m = j;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
@ -4,7 +4,7 @@
|
|||||||
%global gcc_major 8
|
%global gcc_major 8
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
# %%{release}, append them after %%{gcc_release} on Release: line.
|
# %%{release}, append them after %%{gcc_release} on Release: line.
|
||||||
%global gcc_release 23
|
%global gcc_release 24
|
||||||
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
||||||
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
@ -307,6 +307,7 @@ Patch46: gcc8-pr87723.patch
|
|||||||
Patch47: gcc8-pr111039.patch
|
Patch47: gcc8-pr111039.patch
|
||||||
Patch48: gcc8-pr111070.patch
|
Patch48: gcc8-pr111070.patch
|
||||||
Patch49: gcc8-RHEL-32886.patch
|
Patch49: gcc8-RHEL-32886.patch
|
||||||
|
Patch50: gcc8-pr100508.patch
|
||||||
|
|
||||||
Patch1000: nvptx-tools-no-ptxas.patch
|
Patch1000: nvptx-tools-no-ptxas.patch
|
||||||
Patch1001: nvptx-tools-build.patch
|
Patch1001: nvptx-tools-build.patch
|
||||||
@ -931,6 +932,7 @@ so that there cannot be any synchronization problems.
|
|||||||
%patch47 -p1 -b .pr111039~
|
%patch47 -p1 -b .pr111039~
|
||||||
%patch48 -p1 -b .pr111070~
|
%patch48 -p1 -b .pr111070~
|
||||||
%patch49 -p0 -b .32886~
|
%patch49 -p0 -b .32886~
|
||||||
|
%patch50 -p1 -b .pr100508~
|
||||||
|
|
||||||
cd nvptx-tools-%{nvptx_tools_gitrev}
|
cd nvptx-tools-%{nvptx_tools_gitrev}
|
||||||
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
|
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
|
||||||
@ -3338,6 +3340,9 @@ fi
|
|||||||
%{ANNOBIN_GCC_PLUGIN_DIR}/gcc-annobin.so.0.0.0
|
%{ANNOBIN_GCC_PLUGIN_DIR}/gcc-annobin.so.0.0.0
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 24 2025 Marek Polacek <polacek@redhat.com> 8.5.0-24
|
||||||
|
- don't reuse DEBUG_EXPRs with vector type (PR middle-end/100508, RHEL-79501)
|
||||||
|
|
||||||
* Fri Feb 7 2025 Marek Polacek <polacek@redhat.com> 8.5.0-23
|
* Fri Feb 7 2025 Marek Polacek <polacek@redhat.com> 8.5.0-23
|
||||||
- rebuild for CVE-2020-11023 (RHEL-78274)
|
- rebuild for CVE-2020-11023 (RHEL-78274)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user