[tree-ssa] bootstrap failure on x86
Diego Novillo
dnovillo@redhat.com
Fri May 30 13:26:00 GMT 2003
Folks,
One of these two patches broke bootstraps on x86. Could you
please take a look?
The failure looks similar to the one I found on PPC, but on a
different file.
-----------------------------------------------------------------------------
[...]
stage1/xgcc -Bstage1/ -B/home/dnovillo/perf/sbox/tree-ssa-branch/local/inst/i686-pc-linux-gnu/bin/ -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Werror -Wno-error -DHAVE_CONFIG_H -I. -Ijava -I/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc -I/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/java -I/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/config -I/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/../include -I/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/../libbanshee/libcompat -I/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/../libbanshee -I/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/../libbanshee/points-to /home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/java/parse.c -o java/parse.o
/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/java/parse.y: In function `java_check_regular_methods':
/home/dnovillo/perf/sbox/tree-ssa-branch/local/src/gcc/java/parse.y:6425: internal compiler error: in assign_vars, at tree-ssa.c:1530
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[2]: *** [java/parse.o] Error 1
make[2]: Leaving directory `/notnfs/dnovillo/sbox/tree-ssa-branch/bld.toribio/gcc'
make[1]: *** [stage2_build] Error 2
make[1]: Leaving directory `/notnfs/dnovillo/sbox/tree-ssa-branch/bld.toribio/gcc'
make: *** [bootstrap] Error 2
-----------------------------------------------------------------------------
Thanks. Diego.
diff -r -x CVS -dupN gcc.prev/gcc/ChangeLog.tree-ssa gcc/gcc/ChangeLog.tree-ssa
--- gcc.prev/gcc/ChangeLog.tree-ssa 2003-05-28 00:17:14.000000000 -0400
+++ gcc/gcc/ChangeLog.tree-ssa 2003-05-30 04:35:44.000000000 -0400
@@ -1,5 +1,18 @@
2003-05-27 Jason Merrill <jason@redhat.com>
+ * tree-ssa.c (avail_expr_hash): Simplify by using iterative_hash_expr
+ in more places.
+ * tree.c (iterative_hash_expr): Handle SSA_NAME.
+
+2003-05-29 Jeff Law <law@redhat.com>
+
+ * tree-ssa.c (rewrite_stmt): Detect and remove redundant
+ memory loads.
+ (avail_expr_hash): Use iterative_hash_expr, not iterative_hash_object
+ as needed.
+
+2003-05-27 Jason Merrill <jason@redhat.com>
+
* gimplify.c (shortcut_cond_expr): Avoid jumps to jumps.
2003-05-26 Jason Merrill <jason@redhat.com>
diff -r -x CVS -dupN gcc.prev/gcc/tree-ssa.c gcc/gcc/tree-ssa.c
--- gcc.prev/gcc/tree-ssa.c 2003-05-26 04:35:28.000000000 -0400
+++ gcc/gcc/tree-ssa.c 2003-05-30 04:35:54.000000000 -0400
@@ -2107,10 +2107,9 @@ rewrite_stmt (si, block_defs_p, block_av
fold_stmt (stmt);
/* Step 2. Check for redundant computations. Do this optimization only
- for assignments that make no calls and have no aliased nor volatile
- references and no side effects (i.e., no VDEFs). */
- may_optimize_p = !ann->makes_aliased_loads
- && !ann->makes_aliased_stores
+ for assignments that make no calls and have no aliased stores
+ nor volatile references and no side effects (i.e., no VDEFs). */
+ may_optimize_p = !ann->makes_aliased_stores
&& !ann->has_volatile_ops
&& vdefs == NULL;
@@ -2601,10 +2600,7 @@ avail_expr_hash (p)
for (i = 0; ops && i < VARRAY_ACTIVE_SIZE (ops); i++)
{
tree op = *((tree *) VARRAY_GENERIC_PTR (ops, i));
- if (TREE_CODE (op) == SSA_NAME)
- val = iterative_hash_object (SSA_NAME_VERSION (op), val);
- else
- val = iterative_hash_object (op, val);
+ val = iterative_hash_expr (op, val);
}
/* Add the SSA version numbers of every vuse operand. This is important
@@ -2613,7 +2609,7 @@ avail_expr_hash (p)
representing all the elements of the array. */
ops = vuse_ops (stmt);
for (i = 0; ops && i < VARRAY_ACTIVE_SIZE (ops); i++)
- val = iterative_hash_object (SSA_NAME_VERSION (VARRAY_TREE (ops, i)), val);
+ val = iterative_hash_expr (VARRAY_TREE (ops, i), val);
return val;
}
diff -r -x CVS -dupN gcc.prev/gcc/tree.c gcc/gcc/tree.c
--- gcc.prev/gcc/tree.c 2003-05-28 00:17:22.000000000 -0400
+++ gcc/gcc/tree.c 2003-05-30 04:35:54.000000000 -0400
@@ -3608,6 +3608,11 @@ iterative_hash_expr (tree t, hashval_t v
for (; t; t = TREE_CHAIN (t))
val = iterative_hash_expr (TREE_VALUE (t), val);
}
+ else if (code == SSA_NAME)
+ {
+ val = iterative_hash_object (SSA_NAME_VERSION (t), val);
+ val = iterative_hash_expr (SSA_NAME_VAR (t), val);
+ }
else
abort ();
diff -r -x CVS -dupN gcc.prev/gcc/version.c gcc/gcc/version.c
--- gcc.prev/gcc/version.c 2003-05-29 04:38:24.000000000 -0400
+++ gcc/gcc/version.c 2003-05-30 04:35:54.000000000 -0400
@@ -6,7 +6,7 @@
please modify this string to indicate that, e.g. by putting your
organization's name in parentheses at the end of the string. */
-const char version_string[] = "3.5-tree-ssa 20030529 (merged 20030511)";
+const char version_string[] = "3.5-tree-ssa 20030530 (merged 20030511)";
/* This is the location of the online document giving instructions for
reporting bugs. If you distribute a modified version of GCC,
diff -r -x CVS -dupN gcc.prev/libstdc++-v3/include/bits/c++config gcc/libstdc++-v3/include/bits/c++config
--- gcc.prev/libstdc++-v3/include/bits/c++config 2003-05-29 04:40:02.000000000 -0400
+++ gcc/libstdc++-v3/include/bits/c++config 2003-05-30 04:39:27.000000000 -0400
@@ -35,7 +35,7 @@
#include <bits/os_defines.h>
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCPP__ 20030529
+#define __GLIBCPP__ 20030530
// This is necessary until GCC supports separate template compilation.
#define _GLIBCPP_NO_TEMPLATE_EXPORT 1
More information about the Gcc
mailing list