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