public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 10.0.1-0.10
@ 2026-06-29 12:28 Jakub Jelinek
  0 siblings, 0 replies; 3+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:28 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 5ae836ea9d850fc4cfa33d5a1ebc9d5ca86bc99a
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2020-03-25T11:27:42+01:00
Stats  : +89/-507 in 6 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/5ae836ea9d850fc4cfa33d5a1ebc9d5ca86bc99a?branch=rhel-f41-base

Log:
10.0.1-0.10

---
diff --git a/.gitignore b/.gitignore
index eac4938..b3422f4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
 /gcc-10.0.1-20200130.tar.xz
 /gcc-10.0.1-20200216.tar.xz
 /gcc-10.0.1-20200311.tar.xz
+/gcc-10.0.1-20200325.tar.xz

diff --git a/gcc.spec b/gcc.spec
index aa0b27f..4d19025 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20200311
-%global gitrev 61bcda69ca5dc9e9d5e25de7b914dd3a86089244
+%global DATE 20200325
+%global gitrev 17146084e899406b7b39093e945561c737dfe02c
 %global gcc_version 10.0.1
 %global gcc_major 10
 # 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 0.9
+%global gcc_release 0.10
 %global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e
 %global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0
 %global _unpackaged_files_terminate_build 0
@@ -264,8 +264,7 @@ Patch8: gcc10-foffload-default.patch
 Patch9: gcc10-Wno-format-security.patch
 Patch10: gcc10-rh1574936.patch
 Patch11: gcc10-d-shared-libphobos.patch
-Patch12: gcc10-pr94015.patch
-Patch13: gcc10-pr94130.patch
+Patch12: gcc10-pr94308.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -777,8 +776,7 @@ to NVidia PTX capable devices if available.
 %patch10 -p0 -b .rh1574936~
 %endif
 %patch11 -p0 -b .d-shared-libphobos~
-%patch12 -p0 -b .pr94015~
-%patch13 -p0 -b .pr94130~
+%patch12 -p0 -b .pr94308~
 
 echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
 
@@ -3007,6 +3005,36 @@ end
 %endif
 
 %changelog
+* Wed Mar 25 2020 Jakub Jelinek <jakub@redhat.com> 10.0.1-0.10
+- update from trunk
+  - PRs analyzer/94047, analyzer/94099, analyzer/94105, c++/67960, c++/69694,
+	c++/90995, c++/91759, c++/91993, c++/92068, c++/92909, c++/93248,
+	c++/93596, c++/93805, c++/93931, c++/94044, c++/94066, c++/94147,
+	c++/94175, c++/94186, c++/94190, c++/94197, c++/94223, c/94040,
+	c/94172, c/94179, c/94239, d/92216, d/92309, d/92792, d/93038,
+	d/94240, debug/93751, debug/94167, debug/94277, debug/94280,
+	debug/94283, debug/94285, fortran/93365, fortran/93484, fortran/93600,
+	gcov-profile/94029, ipa/92372, ipa/92799, ipa/93347, ipa/94202,
+	ipa/94217, ipa/94232, ipa/94245, ipa/94250, libgomp/81689,
+	libgomp/94251, libstdc++/93245, libstdc++/94033, libstdc++/94199,
+	libstdc++/94203, libstdc++/94242, lto/91027, lto/94157, lto/94249,
+	middle-end/92071, middle-end/93566, middle-end/94072,
+	middle-end/94120, middle-end/94188, middle-end/94189,
+	middle-end/94206, middle-end/94216, middle-end/94233,
+	middle-end/94303, rtl-optimization/90275, rtl-optimization/92303,
+	rtl-optimization/94042, rtl-optimization/94052,
+	rtl-optimization/94119, rtl-optimization/94148, target/92379,
+	target/93694, target/94052, target/94144, target/94154, target/94176,
+	target/94185, target/94201, target/94238, target/94286,
+	testsuite/93935, tree-optimization/93435, tree-optimization/94103,
+	tree-optimization/94125, tree-optimization/94163,
+	tree-optimization/94166, tree-optimization/94187,
+	tree-optimization/94211, tree-optimization/94224,
+	tree-optimization/94261, tree-optimization/94266,
+	tree-optimization/94300
+- fix ICE in final_scan_insn_1 on i686 with vzeroupper (#1816760,
+  PR target/94308)
+
 * Wed Mar 11 2020 Jakub Jelinek <jakub@redhat.com> 10.0.1-0.9
 - update from trunk
   - PRs ada/91100, analyzer/93032, analyzer/93388, analyzer/93692,

diff --git a/gcc10-pr94015.patch b/gcc10-pr94015.patch
deleted file mode 100644
index 822db72..0000000
--- a/gcc10-pr94015.patch
+++ /dev/null
@@ -1,414 +0,0 @@
-2020-03-03  Jakub Jelinek  <jakub@redhat.com>
-
-	PR tree-optimization/94015
-	* tree-ssa-strlen.c (count_nonzero_bytes): Split portions of the
-	function where EXP is address of the bytes being stored rather than
-	the bytes themselves into count_nonzero_bytes_addr.  Punt on zero
-	sized MEM_REF.  Use VAR_P macro and handle CONST_DECL like VAR_DECLs.
-	Use ctor_for_folding instead of looking at DECL_INITIAL.  Punt before
-	calling native_encode_expr if host or target doesn't have 8-bit
-	chars.  Formatting fixes.
-	(count_nonzero_bytes_addr): New function.
-
-	* gcc.dg/pr94015.c: New test.
-
---- gcc/tree-ssa-strlen.c.jj	2020-03-03 07:57:22.324124042 +0100
-+++ gcc/tree-ssa-strlen.c	2020-03-03 18:37:29.382722923 +0100
-@@ -4585,6 +4585,11 @@ int ssa_name_limit_t::next_ssa_name (tre
-   return 0;
- }
- 
-+static bool
-+count_nonzero_bytes_addr (tree, unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT,
-+			  unsigned [3], bool *, bool *, bool *,
-+			  const vr_values *, ssa_name_limit_t &);
-+
- /* Determines the minimum and maximum number of leading non-zero bytes
-    in the representation of EXP and set LENRANGE[0] and LENRANGE[1]
-    to each.
-@@ -4607,102 +4612,6 @@ count_nonzero_bytes (tree exp, unsigned
- 		     bool *allnul, bool *allnonnul, const vr_values *rvals,
- 		     ssa_name_limit_t &snlim)
- {
--  int idx = get_stridx (exp);
--  if (idx > 0)
--    {
--      strinfo *si = get_strinfo (idx);
--      if (!si)
--	return false;
--
--      /* Handle both constant lengths as well non-constant lengths
--	 in some range.  */
--      unsigned HOST_WIDE_INT minlen, maxlen;
--      if (tree_fits_shwi_p (si->nonzero_chars))
--	minlen = maxlen = tree_to_shwi (si->nonzero_chars);
--      else if (nbytes
--	       && si->nonzero_chars
--	       && TREE_CODE (si->nonzero_chars) == SSA_NAME)
--	{
--	  const value_range_equiv *vr
--	    = CONST_CAST (class vr_values *, rvals)
--	    ->get_value_range (si->nonzero_chars);
--	  if (vr->kind () != VR_RANGE
--	      || !range_int_cst_p (vr))
--	    return false;
--
--	 minlen = tree_to_uhwi (vr->min ());
--	 maxlen = tree_to_uhwi (vr->max ());
--	}
--      else
--	return false;
--
--      if (maxlen < offset)
--	return false;
--
--      minlen = minlen < offset ? 0 : minlen - offset;
--      maxlen -= offset;
--      if (maxlen + 1 < nbytes)
--	return false;
--
--      if (!nbytes
--	  && TREE_CODE (si->ptr) == SSA_NAME
--	  && !POINTER_TYPE_P (TREE_TYPE (si->ptr)))
--	{
--	  /* SI->PTR is an SSA_NAME with a DEF_STMT like
--	       _1 = MEM <unsigned int> [(char * {ref-all})s_4(D)];  */
--	  gimple *stmt = SSA_NAME_DEF_STMT (exp);
--	  if (gimple_assign_single_p (stmt)
--	      && gimple_assign_rhs_code (stmt) == MEM_REF)
--	    {
--	      tree rhs = gimple_assign_rhs1 (stmt);
--	      if (tree refsize = TYPE_SIZE_UNIT (TREE_TYPE (rhs)))
--		if (tree_fits_uhwi_p (refsize))
--		  {
--		    nbytes = tree_to_uhwi (refsize);
--		    maxlen = nbytes;
--		  }
--	    }
--
--	  if (!nbytes)
--	    return false;
--	}
--
--      if (nbytes <= minlen)
--	*nulterm = false;
--
--      if (nbytes < minlen)
--	{
--	  minlen = nbytes;
--	  if (nbytes < maxlen)
--	    maxlen = nbytes;
--	}
--
--      if (minlen < lenrange[0])
--	lenrange[0] = minlen;
--      if (lenrange[1] < maxlen)
--	lenrange[1] = maxlen;
--
--      if (lenrange[2] < nbytes)
--	lenrange[2] = nbytes;
--
--      /* Since only the length of the string are known and not its contents,
--	 clear ALLNUL and ALLNONNUL purely on the basis of the length.  */
--      *allnul = false;
--      if (minlen < nbytes)
--	*allnonnul = false;
--
--      return true;
--    }
--
--  if (TREE_CODE (exp) == ADDR_EXPR)
--    {
--      /* If the size of the access hasn't been determined yet it's that
--	 of a pointer.  */
--      if (!nbytes)
--	nbytes = tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (exp)));
--      exp = TREE_OPERAND (exp, 0);
--    }
--
-   if (TREE_CODE (exp) == SSA_NAME)
-     {
-       /* Handle non-zero single-character stores specially.  */
-@@ -4758,8 +4667,7 @@ count_nonzero_bytes (tree exp, unsigned
-       tree arg = TREE_OPERAND (exp, 0);
-       tree off = TREE_OPERAND (exp, 1);
- 
--      if (TREE_CODE (off) != INTEGER_CST
--	  || !tree_fits_uhwi_p (off))
-+      if (TREE_CODE (off) != INTEGER_CST || !tree_fits_uhwi_p (off))
- 	return false;
- 
-       unsigned HOST_WIDE_INT wioff = tree_to_uhwi (off);
-@@ -4776,15 +4684,17 @@ count_nonzero_bytes (tree exp, unsigned
-       if (!typesize || !tree_fits_uhwi_p (typesize))
- 	return false;
-       nbytes = tree_to_uhwi (typesize);
-+      if (!nbytes)
-+	return false;
- 
-       /* Handle MEM_REF = SSA_NAME types of assignments.  */
--      return count_nonzero_bytes (arg, offset, nbytes, lenrange, nulterm,
--				  allnul, allnonnul, rvals, snlim);
-+      return count_nonzero_bytes_addr (arg, offset, nbytes, lenrange, nulterm,
-+				       allnul, allnonnul, rvals, snlim);
-     }
- 
--  if (TREE_CODE (exp) == VAR_DECL && TREE_READONLY (exp))
-+  if (VAR_P (exp) || TREE_CODE (exp) == CONST_DECL)
-     {
--      exp = DECL_INITIAL (exp);
-+      exp = ctor_for_folding (exp);
-       if (!exp)
- 	return false;
-     }
-@@ -4809,6 +4719,8 @@ count_nonzero_bytes (tree exp, unsigned
-   unsigned char buf[256];
-   if (!prep)
-     {
-+      if (CHAR_BIT != 8 || BITS_PER_UNIT != 8)
-+	return false;
-       /* If the pointer to representation hasn't been set above
- 	 for STRING_CST point it at the buffer.  */
-       prep = reinterpret_cast <char *>(buf);
-@@ -4852,8 +4764,8 @@ count_nonzero_bytes (tree exp, unsigned
-   if (n)
-     {
-       /* When the initial number of non-zero bytes N is non-zero, reset
--       *ALLNUL; if N is less than that the size of the representation
--       also clear *ALLNONNUL.  */
-+	 *ALLNUL; if N is less than that the size of the representation
-+	 also clear *ALLNONNUL.  */
-       *allnul = false;
-       if (n < nbytes)
- 	*allnonnul = false;
-@@ -4879,6 +4791,120 @@ count_nonzero_bytes (tree exp, unsigned
-   return true;
- }
- 
-+/* Like count_nonzero_bytes, but instead of counting bytes in EXP, count
-+   bytes that are pointed to by EXP, which should be a pointer.  */
-+
-+static bool
-+count_nonzero_bytes_addr (tree exp, unsigned HOST_WIDE_INT offset,
-+			  unsigned HOST_WIDE_INT nbytes,
-+			  unsigned lenrange[3], bool *nulterm,
-+			  bool *allnul, bool *allnonnul,
-+			  const vr_values *rvals, ssa_name_limit_t &snlim)
-+{
-+  int idx = get_stridx (exp);
-+  if (idx > 0)
-+    {
-+      strinfo *si = get_strinfo (idx);
-+      if (!si)
-+	return false;
-+
-+      /* Handle both constant lengths as well non-constant lengths
-+	 in some range.  */
-+      unsigned HOST_WIDE_INT minlen, maxlen;
-+      if (tree_fits_shwi_p (si->nonzero_chars))
-+	minlen = maxlen = tree_to_shwi (si->nonzero_chars);
-+      else if (si->nonzero_chars
-+	       && TREE_CODE (si->nonzero_chars) == SSA_NAME)
-+	{
-+	  vr_values *v = CONST_CAST (vr_values *, rvals);
-+	  const value_range_equiv *vr = v->get_value_range (si->nonzero_chars);
-+	  if (vr->kind () != VR_RANGE || !range_int_cst_p (vr))
-+	    return false;
-+
-+	  minlen = tree_to_uhwi (vr->min ());
-+	  maxlen = tree_to_uhwi (vr->max ());
-+	}
-+      else
-+	return false;
-+
-+      if (maxlen < offset)
-+	return false;
-+
-+      minlen = minlen < offset ? 0 : minlen - offset;
-+      maxlen -= offset;
-+      if (maxlen + 1 < nbytes)
-+	return false;
-+
-+      if (nbytes <= minlen)
-+	*nulterm = false;
-+
-+      if (nbytes < minlen)
-+	{
-+	  minlen = nbytes;
-+	  if (nbytes < maxlen)
-+	    maxlen = nbytes;
-+	}
-+
-+      if (minlen < lenrange[0])
-+	lenrange[0] = minlen;
-+      if (lenrange[1] < maxlen)
-+	lenrange[1] = maxlen;
-+
-+      if (lenrange[2] < nbytes)
-+	lenrange[2] = nbytes;
-+
-+      /* Since only the length of the string are known and not its contents,
-+	 clear ALLNUL and ALLNONNUL purely on the basis of the length.  */
-+      *allnul = false;
-+      if (minlen < nbytes)
-+	*allnonnul = false;
-+
-+      return true;
-+    }
-+
-+  if (TREE_CODE (exp) == ADDR_EXPR)
-+    return count_nonzero_bytes (TREE_OPERAND (exp, 0), offset, nbytes,
-+				lenrange, nulterm, allnul, allnonnul, rvals,
-+				snlim);
-+
-+  if (TREE_CODE (exp) == SSA_NAME)
-+    {
-+      gimple *stmt = SSA_NAME_DEF_STMT (exp);
-+      if (gimple_code (stmt) == GIMPLE_PHI)
-+	{
-+	  /* Avoid processing an SSA_NAME that has already been visited
-+	     or if an SSA_NAME limit has been reached.  Indicate success
-+	     if the former and failure if the latter.  */
-+	  if (int res = snlim.next_ssa_name (exp))
-+	    return res > 0;
-+
-+	  /* Determine the minimum and maximum from the PHI arguments.  */
-+	  unsigned int n = gimple_phi_num_args (stmt);
-+	  for (unsigned i = 0; i != n; i++)
-+	    {
-+	      tree def = gimple_phi_arg_def (stmt, i);
-+	      if (!count_nonzero_bytes_addr (def, offset, nbytes, lenrange,
-+					     nulterm, allnul, allnonnul, rvals,
-+					     snlim))
-+		return false;
-+	    }
-+
-+	  return true;
-+	}
-+    }
-+
-+  /* Otherwise we don't know anything.  */
-+  lenrange[0] = 0;
-+  if (lenrange[1] < nbytes)
-+    lenrange[1] = nbytes;
-+  if (lenrange[2] < nbytes)
-+    lenrange[2] = nbytes;
-+  *nulterm = false;
-+  *allnul = false;
-+  *allnonnul = false;
-+  return true;
-+}
-+
- /* Same as above except with an implicit SSA_NAME limit.  RVALS is used
-    to determine ranges of dynamically computed string lengths (the results
-    of strlen).  */
---- gcc/testsuite/gcc.dg/pr94015.c.jj	2020-03-03 18:04:47.928594261 +0100
-+++ gcc/testsuite/gcc.dg/pr94015.c	2020-03-03 18:04:34.345794259 +0100
-@@ -0,0 +1,107 @@
-+/* PR tree-optimization/94015 */
-+/* { dg-do run } */
-+/* { dg-options "-O2" } */
-+
-+char buf[10] = "AAAAAAAAA";
-+
-+__attribute__((noipa)) char *
-+alloc (void)
-+{
-+  return buf;
-+}
-+
-+__attribute__((noipa)) void
-+f1 (void)
-+{
-+  char *s = alloc ();
-+  *(char **)s = "1234567";
-+  s[7] = '\0';
-+}
-+
-+__attribute__((noipa)) void
-+f2 (void)
-+{
-+  char *s = alloc ();
-+  *(char **)s = "123456";
-+  s[6] = '\0';
-+}
-+
-+__attribute__((noipa)) void
-+f3 (void)
-+{
-+  char *s = alloc ();
-+  *(char **)s = "12345";
-+  s[5] = '\0';
-+}
-+
-+__attribute__((noipa)) void
-+f4 (void)
-+{
-+  char *s = alloc ();
-+  *(char **)s = "1234";
-+  s[4] = '\0';
-+}
-+
-+__attribute__((noipa)) void
-+f5 (void)
-+{
-+  char *s = alloc ();
-+  *(char **)s = "123";
-+  s[3] = '\0';
-+}
-+
-+__attribute__((noipa)) void
-+f6 (void)
-+{
-+  char *s = alloc ();
-+  *(char **)s = "12";
-+  s[2] = '\0';
-+}
-+
-+__attribute__((noipa)) void
-+f7 (void)
-+{
-+  char *s = alloc ();
-+  *(char **)s = "1";
-+  s[1] = '\0';
-+}
-+
-+__attribute__((noipa)) void
-+f8 (void)
-+{
-+  char *s = alloc ();
-+  *(char **)s = "";
-+  s[0] = '\0';
-+}
-+
-+int
-+main ()
-+{
-+  if (sizeof (char *) > 8)
-+    return 0;
-+  f1 ();
-+  if (buf[7] != 0)
-+    __builtin_abort ();
-+  f2 ();
-+  if (buf[6] != 0)
-+    __builtin_abort ();
-+  f3 ();
-+  if (buf[5] != 0)
-+    __builtin_abort ();
-+  f4 ();
-+  if (buf[4] != 0)
-+    __builtin_abort ();
-+  f5 ();
-+  if (buf[3] != 0)
-+    __builtin_abort ();
-+  f6 ();
-+  if (buf[2] != 0)
-+    __builtin_abort ();
-+  f7 ();
-+  if (buf[1] != 0)
-+    __builtin_abort ();
-+  f8 ();
-+  if (buf[0] != 0)
-+    __builtin_abort ();
-+  return 0;
-+}

diff --git a/gcc10-pr94130.patch b/gcc10-pr94130.patch
deleted file mode 100644
index 10cbc0a..0000000
--- a/gcc10-pr94130.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-2020-03-11  Jakub Jelinek  <jakub@redhat.com>
-
-	PR tree-optimization/94130
-	* tree-ssa-dse.c: Include gimplify.h.
-	(increment_start_addr): If stmt has lhs, drop the lhs from call and
-	set it after the call to the original value of the first argument.
-	Formatting fixes.
-	(decrement_count): Formatting fix.
-
-	* gcc.c-torture/execute/pr94130.c: New test.
-
---- gcc/tree-ssa-dse.c.jj	2020-03-03 11:04:46.367821907 +0100
-+++ gcc/tree-ssa-dse.c	2020-03-11 13:57:38.671845186 +0100
-@@ -38,6 +38,7 @@ along with GCC; see the file COPYING3.
- #include "tree-ssa-dse.h"
- #include "builtins.h"
- #include "gimple-fold.h"
-+#include "gimplify.h"
- 
- /* This file implements dead store elimination.
- 
-@@ -422,29 +423,38 @@ decrement_count (gimple *stmt, int decre
-   gcc_assert (TREE_CODE (*countp) == INTEGER_CST);
-   *countp = wide_int_to_tree (TREE_TYPE (*countp), (TREE_INT_CST_LOW (*countp)
- 						    - decrement));
--
- }
- 
- static void
- increment_start_addr (gimple *stmt, tree *where, int increment)
- {
-+  if (tree lhs = gimple_call_lhs (stmt))
-+    if (where == gimple_call_arg_ptr (stmt, 0))
-+      {
-+	gassign *newop = gimple_build_assign (lhs, unshare_expr (*where));
-+	gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
-+	gsi_insert_after (&gsi, newop, GSI_SAME_STMT);
-+	gimple_call_set_lhs (stmt, NULL_TREE);
-+	update_stmt (stmt);
-+      }
-+
-   if (TREE_CODE (*where) == SSA_NAME)
-     {
-       tree tem = make_ssa_name (TREE_TYPE (*where));
-       gassign *newop
--        = gimple_build_assign (tem, POINTER_PLUS_EXPR, *where,
-+	= gimple_build_assign (tem, POINTER_PLUS_EXPR, *where,
- 			       build_int_cst (sizetype, increment));
-       gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
-       gsi_insert_before (&gsi, newop, GSI_SAME_STMT);
-       *where = tem;
--      update_stmt (gsi_stmt (gsi));
-+      update_stmt (stmt);
-       return;
-     }
- 
-   *where = build_fold_addr_expr (fold_build2 (MEM_REF, char_type_node,
--                                             *where,
--                                             build_int_cst (ptr_type_node,
--                                                            increment)));
-+					      *where,
-+					      build_int_cst (ptr_type_node,
-+							     increment)));
- }
- 
- /* STMT is builtin call that writes bytes in bitmap ORIG, some bytes are dead
---- gcc/testsuite/gcc.c-torture/execute/pr94130.c.jj	2020-03-11 14:01:49.431180291 +0100
-+++ gcc/testsuite/gcc.c-torture/execute/pr94130.c	2020-03-11 14:01:37.654352419 +0100
-@@ -0,0 +1,16 @@
-+/* PR tree-optimization/94130 */
-+
-+int
-+main ()
-+{
-+  int a[8];
-+  char *b = __builtin_memset (a, 0, sizeof (a));
-+  a[0] = 1;
-+  a[1] = 2;
-+  a[2] = 3;
-+  if (b != (char *) a)
-+    __builtin_abort ();
-+  else
-+    asm volatile ("" : : "g" (a) : "memory");
-+  return 0;
-+}

diff --git a/gcc10-pr94308.patch b/gcc10-pr94308.patch
new file mode 100644
index 0000000..78eeae4
--- /dev/null
+++ b/gcc10-pr94308.patch
@@ -0,0 +1,52 @@
+2020-03-25  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/94308
+	* config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set
+	INSN_CODE (insn) to -1 when changing the pattern.
+
+	* gcc.target/i386/pr94308.c: New test.
+
+--- gcc/config/i386/i386-features.c.jj	2020-03-17 13:50:52.955933209 +0100
++++ gcc/config/i386/i386-features.c	2020-03-24 19:19:17.801609289 +0100
+@@ -1792,6 +1792,7 @@ ix86_add_reg_usage_to_vzeroupper (rtx_in
+       RTVEC_ELT (vec, j) = gen_rtx_SET (reg, reg);
+     }
+   XVEC (pattern, 0) = vec;
++  INSN_CODE (insn) = -1;
+   df_insn_rescan (insn);
+ }
+ 
+--- gcc/testsuite/gcc.target/i386/pr94308.c.jj	2020-03-24 19:32:51.964436310 +0100
++++ gcc/testsuite/gcc.target/i386/pr94308.c	2020-03-24 19:32:39.848617482 +0100
+@@ -0,0 +1,31 @@
++/* PR target/94308 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -mfpmath=sse -mavx2 -mfma" } */
++
++#include <x86intrin.h>
++
++void
++foo (float *x, const float *y, const float *z, unsigned int w)
++{
++  unsigned int a;
++  const unsigned int b = w / 8;
++  const float *c = y;
++  const float *d = z;
++  __m256 e = _mm256_setzero_ps ();
++  __m256 f, g;
++  for (a = 0; a < b; a++)
++    {
++      f = _mm256_loadu_ps (c);
++      g = _mm256_loadu_ps (d);
++      c += 8;
++      d += 8;
++      e = _mm256_fmadd_ps (f, g, e);
++    }
++  __attribute__ ((aligned (32))) float h[8];
++  _mm256_storeu_ps (h, e);
++  _mm256_zeroupper ();
++  float i = h[0] + h[1] + h[2] + h[3] + h[4] + h[5] + h[6] + h[7];
++  for (a = b * 8; a < w; a++)
++    i += (*c++) * (*d++);
++  *x = i;
++}

diff --git a/sources b/sources
index c6f9b84..634dbf6 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (gcc-10.0.1-20200311.tar.xz) = b2b730beaf28b75409d4cef72fd9cae20b910442b8b8d4d91911a80bed6e2a63228f08bb31b783f58e31e714be3f3a9f6ceded1f351b4fdded1671e1468eaca7
+SHA512 (gcc-10.0.1-20200325.tar.xz) = 5431edeeb9ef900ce49e4fa13869c63d84c244f846be96f1e782249b0a4ac3c6d5ce73117bd3fb1d2d786e82d394ec0a5ea5cc4615f8cc61d7f6aa43db6a8ce9
 SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 9ceea0b883185fe489724d54a7e909bb6ed4785fcadf80162033dc6a133e2657337175601278e4155d1f8fac275ff9c8a02572aea876166c608774c809f832e9
 SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7

^ permalink raw reply related	[flat|nested] 3+ messages in thread
* [rpms/gcc] rhel-f41-base: 10.0.1-0.10
@ 2026-06-29 12:28 Jakub Jelinek
  0 siblings, 0 replies; 3+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:28 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 047162357c43e82c7bd5c08b573156bead75900b
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2020-03-25T12:32:34+01:00
Stats  : +24/-0 in 1 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/047162357c43e82c7bd5c08b573156bead75900b?branch=rhel-f41-base

Log:
10.0.1-0.10

---
diff --git a/gcc10-pr94254.patch b/gcc10-pr94254.patch
new file mode 100644
index 0000000..408b90a
--- /dev/null
+++ b/gcc10-pr94254.patch
@@ -0,0 +1,24 @@
+2020-03-23  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/94254
+	* config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow
+	FPRs to change between SDmode and DDmode.
+
+--- gcc/config/rs6000/rs6000.c
++++ gcc/config/rs6000/rs6000.c
+@@ -12307,6 +12307,15 @@ rs6000_can_change_mode_class (machine_mode from,
+ 	  if (!BYTES_BIG_ENDIAN && (to == TDmode || from == TDmode))
+ 	    return false;
+ 
++	  /* Allow SD<->DD changes, since SDmode values are stored in
++	     the low half of the DDmode, just like target-independent
++	     code expects.  We need to allow at least SD->DD since
++	     rs6000_secondary_memory_needed_mode asks for that change
++	     to be made for SD reloads.  */
++	  if ((to == DDmode && from == SDmode)
++	      || (to == SDmode && from == DDmode))
++	    return true;
++
+ 	  if (from_size < 8 || to_size < 8)
+ 	    return false;
+ 

^ permalink raw reply related	[flat|nested] 3+ messages in thread
* [rpms/gcc] rhel-f41-base: 10.0.1-0.10
@ 2026-06-29 12:28 Jakub Jelinek
  0 siblings, 0 replies; 3+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:28 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 6768e0a3916c1d2668e43c8a21064534e2cac74a
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2020-03-25T12:29:44+01:00
Stats  : +3/-0 in 1 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/6768e0a3916c1d2668e43c8a21064534e2cac74a?branch=rhel-f41-base

Log:
10.0.1-0.10

---
diff --git a/gcc.spec b/gcc.spec
index a5cafcf..34f3a13 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -265,6 +265,7 @@ Patch9: gcc10-Wno-format-security.patch
 Patch10: gcc10-rh1574936.patch
 Patch11: gcc10-d-shared-libphobos.patch
 Patch12: gcc10-pr94308.patch
+Patch13: gcc10-pr94254.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -777,6 +778,7 @@ to NVidia PTX capable devices if available.
 %endif
 %patch11 -p0 -b .d-shared-libphobos~
 %patch12 -p0 -b .pr94308~
+%patch13 -p0 -b .pr94254~
 
 echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
 
@@ -3034,6 +3036,7 @@ end
 	tree-optimization/94300
 - fix ICE in final_scan_insn_1 on i686 with vzeroupper (#1816760,
   PR target/94308)
+- fix ppc64* hang with dfp (PR target/94254)
 
 * Wed Mar 11 2020 Jakub Jelinek <jakub@redhat.com> 10.0.1-0.9
 - update from trunk

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-06-29 12:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:28 [rpms/gcc] rhel-f41-base: 10.0.1-0.10 Jakub Jelinek
2026-06-29 12:28 Jakub Jelinek
2026-06-29 12:28 Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox