[ast-optimizer-branch] Regressions with your patches

Diego Novillo dnovillo@redhat.com
Sat Jun 8 21:18:00 GMT 2002


Jason,

Thanks for starting to address the FIXMEs in the simplifier.
Unfortunately, some of your patches seem to have introduced
regressions in the branch wrt the last run I have from Jun06:

-------------------------------------------------------------------------------
Testsuite differences between 20020606/gcc.sum.gz and 20020608/gcc.sum.gz
-------------------------------------------------------------------------------

New regressions in 20020608/gcc.sum.gz:
	 FAIL: gcc.c-torture/execute/20020320-1.c compilation
	 FAIL: gcc.c-torture/execute/20020320-1.c compilation
	 FAIL: gcc.c-torture/execute/20020320-1.c compilation
	 FAIL: gcc.c-torture/execute/20020320-1.c compilation
	 FAIL: gcc.c-torture/execute/20020320-1.c compilation
	 FAIL: gcc.c-torture/execute/950628-1.c compilation
	 FAIL: gcc.c-torture/execute/950628-1.c compilation
	 FAIL: gcc.c-torture/execute/950628-1.c compilation
	 FAIL: gcc.c-torture/execute/990413-2.c execution
	 FAIL: gcc.c-torture/execute/990413-2.c execution
	 FAIL: gcc.c-torture/execute/990413-2.c execution
	 FAIL: gcc.c-torture/execute/990413-2.c execution
	 FAIL: gcc.c-torture/execute/990413-2.c execution
	 FAIL: gcc.dg/struct-alias-1.c (test for excess errors)

Fixed regressions in 20020608/gcc.sum.gz:
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Testsuite differences between 20020606/libjava.sum.gz and 20020608/libjava.sum.gz
-------------------------------------------------------------------------------

New regressions in 20020608/libjava.sum.gz:
	 FAIL: final_method run
	 FAIL: cxxtest run
	 FAIL: throwit run
	 FAIL: calls run
	 FAIL: noclass run
	 FAIL: field run
	 FAIL: overload run
	 FAIL: invoke run
	 FAIL: register run
	 FAIL: simple_int run
	 FAIL: findclass run
	 FAIL: martin run
	 FAIL: virtual run
	 FAIL: TLtest compilation from bytecode
	 FAIL: TLtest -O compilation from bytecode
	 FAIL: InvokeReturn output from source compiled test
	 FAIL: InvokeReturn output from bytecode->native test
	 FAIL: InvokeReturn -O output from source compiled test
	 FAIL: InvokeReturn -O output from bytecode->native test

Fixed regressions in 20020608/libjava.sum.gz:
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Testsuite differences between 20020606/libstdc++-v3.sum.gz and 20020608/libstdc++-v3.sum.gz
-------------------------------------------------------------------------------

New regressions in 20020608/libstdc++-v3.sum.gz:
	 FAIL: 26_numerics/c99_classification_macros_c.cc (test for excess errors)

Fixed regressions in 20020608/libstdc++-v3.sum.gz:
-------------------------------------------------------------------------------


The presence of libjava regressions is a bit odd, unless there is
some sort of misscompilation of gcj during bootstrap.  These are
the patches that could have caused the regressions.  I still have
not looked into each test:

--- ast-optimizer-branch/gcc/gcc/ChangeLog	Wed Jun  5 23:51:28 2002
+++ ast-optimizer-branch/review/gcc/gcc/ChangeLog	Sat Jun  8 15:23:40 2002
@@ -1,3 +1,45 @@
+2002-06-08  Jason Merrill  <jason@redhat.com>
+
+	* tree-simple.c (is_simple_unary_expr): Only allow the address of
+	a varname.
+	(is_simple_id): Allow STRING_CST.
+	* c-simplify.c (simplify_expr_common): Split out from simplify_expr.
+	Do simplify ADDR_EXPR.
+	(simplify_lvalue_expr): Use it and build_addr_expr.  Take
+	simple_test_f.
+	(simplify_modify_expr): Adjust.
+	(build_addr_expr): New fn.
+	(simplify_array_ref): Use simplify_lvalue_expr.
+	(simplify_component_ref): Likewise.
+	
+	* tree-simple.c (is_simple_rhs): Remove condexpr rule.
+	(is_simple_compref_lhs): Remove &ID.idlist rule.
+	(is_simple_relop): New fn.
+	(is_simple_binary_expr, is_simple_condexpr): Use it.
+	* tree-simple.h: Declare it.
+
+	* c-simplify.c (create_tmp_var): Refuse to create an array temp.
+	(simple_tmp_var_p): New fn.
+	(simplify_lvalue_expr): Use it; make sure we don't return a temp.
+	* tree-simple.h: Declare it.
+
+	* c-pretty-print.c (dump_c_node) [ARRAY_REF]: Wrap array in parens
+	as needed.
+	[COMPONENT_REF]: Likewise.
+	[POINTER_TYPE]: Fix pointer-to-function handling.
+	[ARRAY_TYPE]: Don't try to print an unknown dimension.
+
+	* tree-simple.c (is_simple_arraybase): New function.
+	(is_simple_arrayref): Use it to check the array base again.
+	* tree-simple.h: Add declaration.
+	* c-simplify.c (simplify_array_ref): Do simplify the base.
+	* expr.c (expand_expr): First make sure the type has a size.
+
+2002-06-07  Jason Merrill  <jason@redhat.com>
+
+	* cppexp.c (num_equality_op): Use a temporary variable to work
+	around gcc 3.0.4 bug.
+
 2002-06-05  Diego Novillo  <dnovillo@redhat.com>
 
 	* Makefile.in (BOOT_CFLAGS): Remove -ftree-ssa.



More information about the Gcc-patches mailing list