Bootstrap miscomparison on mainline with checking disabled

Andrew Pinski pinskia@physics.uc.edu
Wed May 19 16:44:00 GMT 2004


On May 19, 2004, at 12:35, law@redhat.com wrote:

In message < 1084983955.3630.262.camel@localhost.localdomain >, Diego 
Novillo wri
tes:
On Wed, 2004-05-19 at 12:08, law@redhat.com wrote:

It is the phiopt changes.  I've got a handle on it.
jeff
Thanks.  I wonder if they may be also related to the number of
regressions we got on ppc.  The --enable-checking bootstrap on
powerpc-unknown-linux-gnu worked fine, but we are getting these
regressions.
I don't think these regressions are due to the phiopt changes, though.
Most of the new failures are link errors for symbols not found.  Like
gcc.c-torture/execute/20001130-1.c
It's possible if the stage1 compiler mis-compiled the stage2 compiler 
in
a fun an interesting way.

I've got a fix going through testing now.
I also have a fix, it looks like the following, does yours looks the 
same also?
Index: tree-ssa-phiopt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-phiopt.c,v
retrieving revision 2.6
diff -u -p -r2.6 tree-ssa-phiopt.c
--- tree-ssa-phiopt.c	19 May 2004 03:35:10 -0000	2.6
+++ tree-ssa-phiopt.c	19 May 2004 16:37:43 -0000
@@ -461,11 +461,12 @@ value_replacement (basic_block bb, tree
       || (operand_equal_p (arg1, TREE_OPERAND (cond, 0), 0)
 	  && operand_equal_p (arg0, TREE_OPERAND (cond, 1), 0)))
     {
-      edge e;
+      edge e, e1;
       tree arg;

       e = (TREE_CODE (cond) == NE_EXPR ? true_edge : false_edge);
-      if (PHI_ARG_EDGE (phi, 0) == e)
+      e1 = (TREE_CODE (cond) == NE_EXPR ? false_edge : true_edge);
+      if (PHI_ARG_EDGE (phi, 0) == e || PHI_ARG_EDGE (phi, 1) == e1)
 	arg = arg0;
       else
 	arg = arg1;



More information about the Gcc mailing list