[gcc-7] 175/354: * Update to SVN 20170503 (r247549) from the gcc-7-branch.

Ximin Luo infinity0 at debian.org
Thu Nov 23 15:50:48 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch master
in repository gcc-7.

commit 9e7a20efb422593422ea39024c1d279619f569fb
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Wed May 3 14:56:29 2017 +0000

      * Update to SVN 20170503 (r247549) from the gcc-7-branch.
    
    
    git-svn-id: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-7@9433 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                |   4 +-
 debian/patches/svn-updates.diff | 248 +++++++++++++++++++++++++++++++++++++++-
 2 files changed, 245 insertions(+), 7 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 15dd29f..7c32c35 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,13 +1,13 @@
 gcc-7 (7.1.0-3) UNRELEASED; urgency=medium
 
-  * Update to SVN 20170503 (r247542) from the gcc-7-branch.
+  * Update to SVN 20170503 (r247549) from the gcc-7-branch.
   * Fix gdc build on sparc.
   * Update the gdc-cross-install-location patch for GCC 7.
   * Bump libgphobos soname.
   * dpkg-buildflags stopped fiddling around with spec files; remove
     the code removing and warning about dpkg's specs.
 
- -- Matthias Klose <doko at debian.org>  Wed, 03 May 2017 13:13:20 +0200
+ -- Matthias Klose <doko at debian.org>  Wed, 03 May 2017 16:51:15 +0200
 
 gcc-7 (7.1.0-2) experimental; urgency=medium
 
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 82b8d0d..10ba368 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 7 branch upto 20170503 (r247542).
+# DP: updates from the 7 branch upto 20170503 (r247549).
 
 last_update()
 {
 	cat > ${dir}LAST_UPDATED <EOF
-Wed May  3 12:38:57 CEST 2017
-Wed May  3 10:38:57 UTC 2017 (revision 247542)
+Wed May  3 16:50:11 CEST 2017
+Wed May  3 14:50:11 UTC 2017 (revision 247549)
 EOF
 }
 
@@ -56,11 +56,161 @@ Index: gcc/DATESTAMP
 @@ -1 +1 @@
 -20170502
 +20170503
+Index: gcc/tree-chrec.c
+===================================================================
+--- a/src/gcc/tree-chrec.c	(.../tags/gcc_7_1_0_release)
++++ b/src/gcc/tree-chrec.c	(.../branches/gcc-7-branch)
+@@ -149,7 +149,12 @@
+ 
+   /* This function should never be called for chrecs of loops that
+      do not belong to the same loop nest.  */
+-  gcc_assert (loop0 == loop1);
++  if (loop0 != loop1)
++    {
++      /* It still can happen if we are not in loop-closed SSA form.  */
++      gcc_assert (! loops_state_satisfies_p (LOOP_CLOSED_SSA));
++      return chrec_dont_know;
++    }
+ 
+   if (code == PLUS_EXPR || code == POINTER_PLUS_EXPR)
+     {
+@@ -211,7 +216,12 @@
+        chrec_fold_multiply (type, CHREC_LEFT (poly0), poly1),
+        CHREC_RIGHT (poly0));
+ 
+-  gcc_assert (loop0 == loop1);
++  if (loop0 != loop1)
++    {
++      /* It still can happen if we are not in loop-closed SSA form.  */
++      gcc_assert (! loops_state_satisfies_p (LOOP_CLOSED_SSA));
++      return chrec_dont_know;
++    }
+ 
+   /* poly0 and poly1 are two polynomials in the same variable,
+      {a, +, b}_x * {c, +, d}_x  ->  {a*c, +, a*d + b*c + b*d, +, 2*b*d}_x.  */
+Index: gcc/tree-ssa-sccvn.c
+===================================================================
+--- a/src/gcc/tree-ssa-sccvn.c	(.../tags/gcc_7_1_0_release)
++++ b/src/gcc/tree-ssa-sccvn.c	(.../branches/gcc-7-branch)
+@@ -2916,14 +2916,11 @@
+    the other.  */
+ 
+ static bool
+-cond_stmts_equal_p (gcond *cond1, gcond *cond2, bool *inverted_p)
++cond_stmts_equal_p (gcond *cond1, tree lhs1, tree rhs1,
++		    gcond *cond2, tree lhs2, tree rhs2, bool *inverted_p)
+ {
+   enum tree_code code1 = gimple_cond_code (cond1);
+   enum tree_code code2 = gimple_cond_code (cond2);
+-  tree lhs1 = gimple_cond_lhs (cond1);
+-  tree lhs2 = gimple_cond_lhs (cond2);
+-  tree rhs1 = gimple_cond_rhs (cond1);
+-  tree rhs2 = gimple_cond_rhs (cond2);
+ 
+   *inverted_p = false;
+   if (code1 == code2)
+@@ -2941,10 +2938,6 @@
+   else
+     return false;
+ 
+-  lhs1 = vn_valueize (lhs1);
+-  rhs1 = vn_valueize (rhs1);
+-  lhs2 = vn_valueize (lhs2);
+-  rhs2 = vn_valueize (rhs2);
+   return ((expressions_equal_p (lhs1, lhs2)
+ 	   && expressions_equal_p (rhs1, rhs2))
+ 	  || (commutative_tree_code (code1)
+@@ -3002,7 +2995,10 @@
+ 	      return false;
+ 	    bool inverted_p;
+ 	    if (! cond_stmts_equal_p (as_a <gcond *> (last1),
+-				      as_a <gcond *> (last2), &inverted_p))
++				      vp1->cclhs, vp1->ccrhs,
++				      as_a <gcond *> (last2),
++				      vp2->cclhs, vp2->ccrhs,
++				      &inverted_p))
+ 	      return false;
+ 
+ 	    /* Get at true/false controlled edges into the PHI.  */
+@@ -3081,6 +3077,16 @@
+   vp1.type = TREE_TYPE (gimple_phi_result (phi));
+   vp1.phiargs = shared_lookup_phiargs;
+   vp1.block = gimple_bb (phi);
++  /* Extract values of the controlling condition.  */
++  vp1.cclhs = NULL_TREE;
++  vp1.ccrhs = NULL_TREE;
++  basic_block idom1 = get_immediate_dominator (CDI_DOMINATORS, vp1.block);
++  if (EDGE_COUNT (idom1->succs) == 2)
++    if (gcond *last1 = dyn_cast <gcond *> (last_stmt (idom1)))
++      {
++	vp1.cclhs = vn_valueize (gimple_cond_lhs (last1));
++	vp1.ccrhs = vn_valueize (gimple_cond_rhs (last1));
++      }
+   vp1.hashcode = vn_phi_compute_hash (&vp1);
+   slot = current_info->phis->find_slot_with_hash (&vp1, vp1.hashcode,
+ 						  NO_INSERT);
+@@ -3117,6 +3123,16 @@
+   vp1->type = TREE_TYPE (gimple_phi_result (phi));
+   vp1->phiargs = args;
+   vp1->block = gimple_bb (phi);
++  /* Extract values of the controlling condition.  */
++  vp1->cclhs = NULL_TREE;
++  vp1->ccrhs = NULL_TREE;
++  basic_block idom1 = get_immediate_dominator (CDI_DOMINATORS, vp1->block);
++  if (EDGE_COUNT (idom1->succs) == 2)
++    if (gcond *last1 = dyn_cast <gcond *> (last_stmt (idom1)))
++      {
++	vp1->cclhs = vn_valueize (gimple_cond_lhs (last1));
++	vp1->ccrhs = vn_valueize (gimple_cond_rhs (last1));
++      }
+   vp1->result = result;
+   vp1->hashcode = vn_phi_compute_hash (vp1);
+ 
+Index: gcc/tree-ssa-sccvn.h
+===================================================================
+--- a/src/gcc/tree-ssa-sccvn.h	(.../tags/gcc_7_1_0_release)
++++ b/src/gcc/tree-ssa-sccvn.h	(.../branches/gcc-7-branch)
+@@ -67,6 +67,9 @@
+   hashval_t hashcode;
+   vec<tree> phiargs;
+   basic_block block;
++  /* Controlling condition lhs/rhs.  */
++  tree cclhs;
++  tree ccrhs;
+   tree type;
+   tree result;
+ } *vn_phi_t;
 Index: gcc/ChangeLog
 ===================================================================
 --- a/src/gcc/ChangeLog	(.../tags/gcc_7_1_0_release)
 +++ b/src/gcc/ChangeLog	(.../branches/gcc-7-branch)
-@@ -1,3 +1,21 @@
+@@ -1,3 +1,47 @@
++2017-05-03  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2017-04-20  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/80453
++	* tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
++	* tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
++	from the conditions.
++	(vn_phi_eq): Pass them down.
++	(vn_phi_lookup): Record them.
++	(vn_phi_insert): Likewise.
++
++	2017-04-25  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/80492
++	* alias.c (compare_base_decls): Handle registers with asm
++	specification conservatively.
++
++	2017-04-27  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/80539
++	* tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
++	being in loop-closed SSA form conservatively.
++	(chrec_fold_multiply_poly_poly): Likewise.
++
 +2017-05-02  Uros Bizjak  <ubizjak at gmail.com>
 +
 +	Backport from mainline
@@ -97,11 +247,76 @@ Index: gcc/testsuite/gcc.dg/pr80468.c
 +  __attribute__ ((__vector_size__ (4 * sizeof (unsigned)))) __int128 b;	/* { dg-error "is not supported on this target" } */
 +  0 != b;
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr80539.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr80539.c	(.../tags/gcc_7_1_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr80539.c	(.../branches/gcc-7-branch)
+@@ -0,0 +1,22 @@
++/* { dg-do compile } */
++
++signed char a, b;
++void fn1()
++{
++  signed char c, e;
++  short d;
++  if (0) {
++      for (; d;) {
++l1:
++	  for (c = 7; a; c++)
++	    ;
++	  e = 6;
++	  for (; b; e++)
++	    ;
++      }
++      c -= e;
++  }
++  if (d == 7)
++    goto l1;
++  a = c;
++}
+Index: gcc/testsuite/gcc.dg/pr80492.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr80492.c	(.../tags/gcc_7_1_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr80492.c	(.../branches/gcc-7-branch)
+@@ -0,0 +1,20 @@
++/* { dg-do compile } */
++/* { dg-options "-w -O2 -fdump-tree-optimized" } */
++
++static __inline__ __attribute__((__always_inline__))
++void syscall_7 (int val)
++{
++  register int reg __asm ("4") = val;
++  __asm __volatile__ ("/* Some Code %0 */" :: "r" (reg));
++}
++
++void do_syscalls (void)
++{
++  for (int s = 0; s < 2; s++)
++    {
++      syscall_7 (0);
++      syscall_7 (1);
++    }
++}
++
++/* { dg-final { scan-tree-dump-times "reg = " 4 "optimized" } } */
 Index: gcc/testsuite/ChangeLog
 ===================================================================
 --- a/src/gcc/testsuite/ChangeLog	(.../tags/gcc_7_1_0_release)
 +++ b/src/gcc/testsuite/ChangeLog	(.../branches/gcc-7-branch)
-@@ -1,3 +1,11 @@
+@@ -1,3 +1,24 @@
++2017-05-03  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2017-04-25  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/80492
++	* gcc.dg/pr80492.c: New testcase.
++
++	2017-04-27  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/80539
++	* gcc.dg/torture/pr80539.c: New testcase.
++
 +2017-05-03  Jakub Jelinek <jakub at redhat.com>
 +
 +	Backported from mainline
@@ -113,6 +328,29 @@ Index: gcc/testsuite/ChangeLog
  2017-05-02  Release Manager
  
  	* GCC 7.1.0 released.
+Index: gcc/alias.c
+===================================================================
+--- a/src/gcc/alias.c	(.../tags/gcc_7_1_0_release)
++++ b/src/gcc/alias.c	(.../branches/gcc-7-branch)
+@@ -2046,6 +2046,18 @@
+   if (base1 == base2)
+     return 1;
+ 
++  /* If we have two register decls with register specification we
++     cannot decide unless their assembler name is the same.  */
++  if (DECL_REGISTER (base1)
++      && DECL_REGISTER (base2)
++      && DECL_ASSEMBLER_NAME_SET_P (base1)
++      && DECL_ASSEMBLER_NAME_SET_P (base2))
++    {
++      if (DECL_ASSEMBLER_NAME (base1) == DECL_ASSEMBLER_NAME (base2))
++	return 1;
++      return -1;
++    }
++
+   /* Declarations of non-automatic variables may have aliases.  All other
+      decls are unique.  */
+   if (!decl_in_symtab_p (base1)
 Index: gcc/po/es.po
 ===================================================================
 --- a/src/gcc/po/es.po	(.../tags/gcc_7_1_0_release)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-7.git



More information about the Reproducible-commits mailing list