This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa] New g++/libstdc++ regressions with checking disabled.
- From: Diego Novillo <dnovillo at redhat dot com>
- To: Steven Bosscher <stevenb at suse dot de>, Jeff Law <law at redhat dot com>, Jan Hubicka <jh at suse dot cz>, Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>, Richard Henderson <rth at redhat dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Tue, 09 Dec 2003 13:04:57 -0500
- Subject: [tree-ssa] New g++/libstdc++ regressions with checking disabled.
- Organization: Red Hat Canada
Folks,
One of these patches is exposing new regressions in the g++ and
libstdc++ testsuites (at least not in x86-64, the others are still
churning).
I haven't been able to see which one. Could you help me out and see if
it's not due to your patch? I'm not getting these failures in
enabled-checking testers.
Thanks. Diego.
-------------------------------------------------------------------------------
Testsuite differences between 20031208/g++.sum.gz and 20031209/g++.sum.gz
-------------------------------------------------------------------------------
New regressions in 20031209/g++.sum.gz:
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/debug/debug1.C (test for excess errors)
FAIL: g++.dg/abi/mangle13.C (test for excess errors)
FAIL: g++.dg/lookup/decl1.C (test for errors
FAIL: g++.dg/lookup/decl1.C (test for errors
FAIL: g++.dg/warn/noeffect4.C (test for warnings
FAIL: g++.dg/warn/noeffect4.C (test for warnings
FAIL: g++.dg/warn/noeffect4.C (test for excess errors)
FAIL: g++.old-deja/g++.brendan/crash38.C (test for excess errors)
FAIL: g++.old-deja/g++.mike/p784.C (test for excess errors)
FAIL: g++.old-deja/g++.mike/p811.C (test for excess errors)
FAIL: g++.old-deja/g++.other/inline12.C (test for excess errors)
FAIL: g++.old-deja/g++.pt/auto_ptr.C (test for excess errors)
Fixed regressions in 20031209/g++.sum.gz:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Testsuite differences between 20031208/libstdc++.sum.gz and 20031209/libstdc++.sum.gz
-------------------------------------------------------------------------------
New regressions in 20031209/libstdc++.sum.gz:
FAIL: 20_util/auto_ptr.cc (test for excess errors)
FAIL: 20_util/auto_ptr_neg.cc (test for excess errors)
FAIL: 23_containers/deque/invalidation/1.cc (test for excess errors)
FAIL: 23_containers/deque/invalidation/2.cc (test for excess errors)
FAIL: 23_containers/deque/invalidation/3.cc (test for excess errors)
FAIL: 23_containers/deque/invalidation/4.cc (test for excess errors)
FAIL: 23_containers/list/invalidation/1.cc (test for excess errors)
FAIL: 23_containers/list/invalidation/2.cc (test for excess errors)
FAIL: 23_containers/list/invalidation/3.cc (test for excess errors)
FAIL: 23_containers/list/invalidation/4.cc (test for excess errors)
FAIL: 23_containers/map/invalidation/1.cc (test for excess errors)
FAIL: 23_containers/map/invalidation/2.cc (test for excess errors)
FAIL: 23_containers/multimap/invalidation/1.cc (test for excess errors)
FAIL: 23_containers/multimap/invalidation/2.cc (test for excess errors)
FAIL: 23_containers/multiset/invalidation/1.cc (test for excess errors)
FAIL: 23_containers/multiset/invalidation/2.cc (test for excess errors)
FAIL: 23_containers/set/invalidation/1.cc (test for excess errors)
FAIL: 23_containers/set/invalidation/2.cc (test for excess errors)
FAIL: 23_containers/vector/invalidation/1.cc (test for excess errors)
FAIL: 23_containers/vector/invalidation/2.cc (test for excess errors)
FAIL: 23_containers/vector/invalidation/3.cc (test for excess errors)
FAIL: 23_containers/vector/invalidation/4.cc (test for excess errors)
Fixed regressions in 20031209/libstdc++.sum.gz:
FAIL: 23_containers/deque/invalidation/4.cc execution test
FAIL: 23_containers/list/invalidation/3.cc execution test
FAIL: 23_containers/list/invalidation/4.cc execution test
-------------------------------------------------------------------------------
--- gcc.prev/gcc/ChangeLog.tree-ssa 2003-12-07 15:18:55.000000000 -0500
+++ gcc/gcc/ChangeLog.tree-ssa 2003-12-08 18:28:50.000000000 -0500
@@ -1,3 +1,94 @@
+2003-12-08 Steven Bosscher <stevenb@suse.de>
+
+ * tree-optimize.c (optimize_function_tree): Move verify_ssa calls
+ into conditionals.
+
+2003-12-08 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-alias-ander.c (andersen_same_points_to_set): Fix memory leak.
+
+2003-12-08 Jeff Law <law@redhat.com>
+
+ * tree-ssa-live.c (register_ssa_partition): Kill legacy code which
+ recursively called register_ssa_partition on PHI arguments when
+ SSA_VAR was defined by a PHI_NODE.
+
+2003-12-08 Jan Hubicka <jh@suse.cz>
+
+ * tree-dump.c (dump_files): Fix ordering of tail call pass.
+ * tree.h (tree_dump_index): Likewise.
+
+2003-12-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (tree-cfg.o): Add gt-tree-cfg.h dependency.
+ (GTFILES): Add tree-cfg.c.
+ * tree-cfg.c: Include gt-tree-cfg.h.
+ (factored_computed_goto_label, factored_computed_goto):
+ Mark gc roots.
+
+2003-12-08 Steven Bosscher <stevenb@suse.de>
+ Jan Hubicka <jh@suse.de>
+
+ * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
+ * Makefile.in (function.o, reg-stack.o): Add missing dependency on
+ basic-block.h.
+ (GTFILES): Add basic-block.h and hwint.h.
+ * basic-block.h (struct edge_def): Add GTY markers, make garbage
+ collectable. Make `insns' field GC safe depending on the setting
+ of cfg_hooks.
+ (struct basic_block_def): Add GTY markers, make garbage collectable.
+ (tree_bb_root, tree_phi_root): Kill extern decls.
+ (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change from macro to variable
+ (entry_exit_blocks): Kill.
+ * cfg.c: Include ggc.h
+ (bb_pool, edge_pool, entry_exit_blocks): Kill.
+ (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Define.
+ (init_flow): Do not create ppols; allocate entry/exit block.
+ (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
+ (compact_blocks): Don't update tree_bb_root and tree_phi_root.
+ * cfgrtl.c (rtl_merge_blocks): Clear head pointer.
+ * regs.h: Protect against multiple inclusion.
+ * tree-cfg.c (obstack_tree_ann_obstack, first_block_tree_and_obj,
+ tree_bb_root): Kill.
+ (build_tree_cfg, create_bb, remove_bb, delete_tree_cfg): Don't
+ touch tree_bb_root and tree_phi_root.
+ (create_block_annotations): Do not initialize obstack.
+ (free_block_annotations): Do not free obstack.
+ (create_block_annotation): Use GGC.
+ * tree-dfa.c (tree_phi_root): Kill.
+ * tree-flow.h (bb_ann, bb_ann_d): Declare. Add `phi_nodes' field.
+ * tree-phinodes.c (create_phi_node, add_phi_arg, remove_phi_node,
+ remove_all_phi_nodes_for): Use `phi_nodes' field in the bb
+ annotation instead of tree_phi_root.
+ * tree-flow-inline.h (phi_nodes, set_phi_nodes): Likewise.
+ (add_dom_child, clear_dom_children): Use GGC.
+ * tree-ssa-pre.c (code_motion): Use `phi_nodes' field in the bb
+ annotation instead of tree_phi_root.
+ * varray.h (union varray_data): Make basic_block_def and edge_def
+ varrays garbage collectable.
+
+2003-12-07 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (c_address_looks_like_offsetof): New.
+ * c-common.h (c_address_looks_like_offsetof): Declare.
+ * c-typeck.c (build_unary_op) <ADDR_EXPR>: Use it. Don't lower
+ address references not destined for offsetof.
+ (c_expand_return): Only look inside ARRAY_REF and COMPONENT_REF
+ when looking for returning address of local variable.
+ * expr.c (expand_expr_1): Don't dereference size of unbounded arrays.
+ * gimplify.c (gimplify_addr_expr): Only fold address of variable size
+ array elements.
+ * tree-simple.c (is_gimple_min_invariant): Also check
+ is_gimple_variable before disallowing offset address for type.
+ * tree-ssa-ccp.c (maybe_fold_offset_to_aggregate_ref): New.
+ (maybe_fold_offset_to_component_ref): Use it.
+ (maybe_fold_stmt_indirect, maybe_fold_stmt_plus): Likewise.
+ (maybe_fold_offset_to_array_ref): Likewise. Don't fail for division
+ remainder non-zero.
+ * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Use
+ handled_component_p and look inside references.
+ <MINUS_EXPR>: Always look past widening casts.
+
2003-12-07 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* tree-cfg.c (compute_dominance_frontiers): Don't assume that