rpms/gcc/devel gcc4-pr20640.patch, NONE, 1.1 .cvsignore, 1.78, 1.79 gcc4-pr20249.patch, 1.2, 1.3 gcc4-pr20532.patch, 1.1, 1.2 gcc4.spec, 1.20, 1.21 sources, 1.79, 1.80 gcc4-pr20622.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Mar 30 08:20:41 UTC 2005


Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv3626

Modified Files:
	.cvsignore gcc4-pr20249.patch gcc4-pr20532.patch gcc4.spec 
	sources 
Added Files:
	gcc4-pr20640.patch 
Removed Files:
	gcc4-pr20622.patch 
Log Message:
4.0.0-0.38


gcc4-pr20640.patch:
 testsuite/gcc.dg/torture/tree-loop-1.c |   21 +++++++++++++++++++++
 tree-ssa-dce.c                         |    2 +-
 2 files changed, 22 insertions(+), 1 deletion(-)

--- NEW FILE gcc4-pr20640.patch ---
2005-03-30  Alexandre Oliva  <aoliva at redhat.com>

	PR tree-optimization/20640
	* tree-ssa-dce.c (remove_dead_stmt): Add phi args to phi nodes
	affected by an edge redirection.

	* gcc.dg/torture/tree-loop-1.c: New.

--- gcc/tree-ssa-dce.c 17 Feb 2005 16:19:44 -0000 2.32
+++ gcc/tree-ssa-dce.c 30 Mar 2005 05:28:09 -0000
@@ -810,7 +810,7 @@ remove_dead_stmt (block_stmt_iterator *i
 
       /* Redirect the first edge out of BB to reach POST_DOM_BB.  */
       redirect_edge_and_branch (EDGE_SUCC (bb, 0), post_dom_bb);
-      PENDING_STMT (EDGE_SUCC (bb, 0)) = NULL;
+      flush_pending_stmts (EDGE_SUCC (bb, 0));
       EDGE_SUCC (bb, 0)->probability = REG_BR_PROB_BASE;
       EDGE_SUCC (bb, 0)->count = bb->count;
 
--- gcc/testsuite/gcc.dg/torture/tree-loop-1.c	1 Jan 1970 00:00:00 -0000
+++ gcc/testsuite/gcc.dg/torture/tree-loop-1.c 30 Mar 2005 05:28:22 -0000
@@ -0,0 +1,21 @@
+/* PR tree-optimization/20640 */
+
+/* After unrolling the loop, we'd turn some conditional branches into
+   unconditional ones, but branch redirection would fail to compute
+   the PHI args for the PHI nodes in the replacement edge
+   destination, so they'd remain NULL causing crashes later on.  */
+
+/* { dg-do compile } */
+
+static int a = 0;
+extern int foo (void);
+extern int *bar (void) __attribute__ ((__const__));
+
+void
+test (int x)
+{
+  int b = 10;
+  while (foo () == -1 && *bar () == 4 && b > 0)
+    --b;
+  a = x;
+}


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -r1.78 -r1.79
--- .cvsignore	24 Mar 2005 08:48:31 -0000	1.78
+++ .cvsignore	30 Mar 2005 08:20:38 -0000	1.79
@@ -1 +1 @@
-gcc-4.0.0-20050324.tar.bz2
+gcc-4.0.0-20050330.tar.bz2

gcc4-pr20249.patch:
 20050325-1.c |   19 +++++++++++++++++++
 20050330-1.c |   21 +++++++++++++++++++++
 2 files changed, 40 insertions(+)

Index: gcc4-pr20249.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc4-pr20249.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gcc4-pr20249.patch	11 Mar 2005 22:56:00 -0000	1.2
+++ gcc4-pr20249.patch	30 Mar 2005 08:20:38 -0000	1.3
@@ -1,46 +1,17 @@
-2005-03-07  Zdenek Dvorak  <dvorakz at suse.cz>
+2005-03-30  Jakub Jelinek  <jakub at redhat.com>
 
-	PR middle-end/20249
-	* cse.c (insert_regs): Do not record equivalence of registers in
-	different modes.
+	* gcc.dg/20050330-1.c: New test.
 
-2005-03-11  Jakub Jelinek  <jakub at redhat.com>
+2005-03-25  Zdenek Dvorak  <dvorakz at suse.cz>
 
-	* gcc.dg/pr20249-1.c: New test.
-	* gcc.dg/pr20249-2.c: New test.
+	PR rtl-optimization/20249
+	* gcc.dg/20050325-1.c: New test.
 
---- gcc/cse.c.jj	2005-02-27 17:54:15.000000000 +0100
-+++ gcc/cse.c	2005-03-11 14:09:06.652737988 +0100
-@@ -1234,7 +1234,24 @@ insert_regs (rtx x, struct table_elt *cl
- 	      if (REG_P (classp->exp)
- 		  && GET_MODE (classp->exp) == GET_MODE (x))
- 		{
--		  make_regs_eqv (regno, REGNO (classp->exp));
-+		  unsigned c_regno = REGNO (classp->exp);
-+
-+		  gcc_assert (REGNO_QTY_VALID_P (c_regno));
-+
-+		  /* Suppose that 5 is hard reg and 100 and 101 are
-+		     pseudos.  Consider
-+
-+		     (set (reg:si 100) (reg:si 5))
-+		     (set (reg:si 5) (reg:si 100))
-+		     (set (reg:di 101) (reg:di 5))
-+
-+		     We would now set REG_QTY (101) = REG_QTY (5), but the
-+		     entry for 5 is in SImode.  When we use this later in
-+		     copy propagation, we get the register in wrong mode.  */
-+		  if (qty_table[REG_QTY (c_regno)].mode != GET_MODE (x))
-+		    continue;
-+
-+		  make_regs_eqv (regno, c_regno);
- 		  return 1;
- 		}
- 
---- gcc/testsuite/gcc.dg/pr20249-1.c	2005-03-07 15:39:16.570545056 +0100
-+++ gcc/testsuite/gcc.dg/pr20249-1.c	2005-03-11 14:13:18.589822269 +0100
-@@ -0,0 +1,18 @@
+--- gcc/testsuite/gcc.dg/20050325-1.c	2005-03-07 15:39:16.570545056 +0100
++++ gcc/testsuite/gcc.dg/20050325-1.c	2005-03-11 14:13:18.589822269 +0100
+@@ -0,0 +1,19 @@
 +/* PR middle-end/20249 */
++
 +/* { dg-do compile } */
 +/* { dg-options "-O2 -fprofile-arcs" } */
 +
@@ -54,12 +25,12 @@
 +}
 +  
 +void
-+f (void)
++f ()
 +{
 +  g (42, ff);
 +}
---- gcc/testsuite/gcc.dg/pr20249-2.c	2005-03-07 15:39:16.570545056 +0100
-+++ gcc/testsuite/gcc.dg/pr20249-2.c	2005-03-11 14:14:09.187804704 +0100
+--- gcc/testsuite/gcc.dg/20050330-1.c	2005-03-07 15:39:16.570545056 +0100
++++ gcc/testsuite/gcc.dg/20050330-1.c	2005-03-11 14:14:09.187804704 +0100
 @@ -0,0 +1,21 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O2 -fprofile-generate" } */

gcc4-pr20532.patch:
 simplify-rtx.c |   93 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 74 insertions(+), 19 deletions(-)

Index: gcc4-pr20532.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc4-pr20532.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gcc4-pr20532.patch	24 Mar 2005 08:48:31 -0000	1.1
+++ gcc4-pr20532.patch	30 Mar 2005 08:20:38 -0000	1.2
@@ -5,8 +5,6 @@
 	overflow when adding coefficients for PLUS or MINUS.  Handle
 	CONST_DOUBLE exact power of two as multiplier.
 
-	* gcc.target/i386/badshift.c: New.
-
 --- gcc/simplify-rtx.c 10 Mar 2005 22:21:58 -0000 1.230.2.1
 +++ gcc/simplify-rtx.c 24 Mar 2005 06:11:14 -0000
 @@ -1551,48 +1551,69 @@ simplify_binary_operation (enum rtx_code
@@ -186,34 +184,3 @@
  	  /* x*2 is x+x and x*(-1) is -x */
  	  if (GET_CODE (trueop1) == CONST_DOUBLE
  	      && GET_MODE_CLASS (GET_MODE (trueop1)) == MODE_FLOAT
---- gcc/testsuite/gcc.target/i386/badshift.c	1 Jan 1970 00:00:00 -0000
-+++ gcc/testsuite/gcc.target/i386/badshift.c	24 Mar 2005 06:11:28 -0000
-@@ -0,0 +1,28 @@
-+/* PR rtl-optimization/20532 */
-+
-+/* { dg-do run } */
-+/* { dg-options "-m32 -march=i386 -O1" } */
-+
-+/* We used to optimize the DImode shift-by-32 to zero because in combine
-+   we turned:
-+
-+     (v << 31) + (v << 31)
-+
-+   into:
-+
-+     (v * (((HOST_WIDE_INT)1 << 31) + ((HOST_WIDE_INT)1 << 31)))
-+
-+   With a 32-bit HOST_WIDE_INT, the coefficient overflowed to zero.  */
-+
-+unsigned long long int badshift(unsigned long long int v)
-+{
-+        return v << 31 << 1;
-+}
-+
-+extern void abort ();
-+
-+int main() {
-+  if (badshift (1) == 0)
-+    abort ();
-+  return 0;
-+}


Index: gcc4.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc4.spec,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- gcc4.spec	24 Mar 2005 22:42:09 -0000	1.20
+++ gcc4.spec	30 Mar 2005 08:20:38 -0000	1.21
@@ -1,6 +1,6 @@
-%define DATE 20050324
+%define DATE 20050330
 %define gcc_version 4.0.0
-%define gcc_release 0.37
+%define gcc_release 0.38
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} alpha ia64 x86_64 s390
@@ -83,7 +83,7 @@
 Patch11: gcc4-c++-pr20381.patch
 Patch12: gcc4-pr20290.patch
 Patch13: gcc4-pr20532.patch
-Patch14: gcc4-pr20622.patch
+Patch14: gcc4-pr20640.patch
 
 %define _gnu %{nil}
 %ifarch sparc
@@ -406,7 +406,7 @@
 %patch11 -p0 -b .c++-pr20381~
 %patch12 -p0 -b .pr20290~
 %patch13 -p0 -b .pr20532~
-%patch14 -p0 -b .pr20622~
+%patch14 -p0 -b .pr20640~
 
 perl -pi -e 's/4\.0\.0/4.0.0/' gcc/version.c
 perl -pi -e 's/"%{gcc_version}"/"%{gcc_version} \(release\)"/' gcc/version.c
@@ -1378,6 +1378,14 @@
 %endif
 
 %changelog
+* Wed Mar 30 2005 Jakub Jelinek  <jakub at redhat.com> 4.0.0-0.38
+- update from CVS
+  - PRs libfortran/15332, libfortran/19678, libfortran/19679,
+	libfortran/20163, middle-end/20263, middle-end/20491,
+	rtl-optimization/20249, target/15491, target/20617, tree-opt/19108,
+	tree-optimization/19108
+- fix edge redirection (Alexandre Oliva, #152149, PR tree-optimization/20640)
+
 * Thu Mar 24 2005 Jakub Jelinek  <jakub at redhat.com> 4.0.0-0.37
 - fix PR middle-end/20622
 


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/sources,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -r1.79 -r1.80
--- sources	24 Mar 2005 08:48:31 -0000	1.79
+++ sources	30 Mar 2005 08:20:38 -0000	1.80
@@ -1 +1 @@
-92a67c0609d1582aa8a24c2b84ee8230  gcc-4.0.0-20050324.tar.bz2
+91316930d001c606c09e0d35419d1c9f  gcc-4.0.0-20050330.tar.bz2


--- gcc4-pr20622.patch DELETED ---




More information about the fedora-cvs-commits mailing list