public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* [tree-ssa] New g++/libstdc++ regressions with checking disabled.
@ 2003-12-09 18:09 Diego Novillo
  2003-12-09 20:31 ` Jan Hubicka
  2003-12-09 20:36 ` Diego Novillo
  0 siblings, 2 replies; 6+ messages in thread
From: Diego Novillo @ 2003-12-09 18:09 UTC (permalink / raw)
  To: Steven Bosscher, Jeff Law, Jan Hubicka, Zdenek Dvorak, Richard Henderson
  Cc: gcc


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



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [tree-ssa] New g++/libstdc++ regressions with checking disabled.
  2003-12-09 18:09 [tree-ssa] New g++/libstdc++ regressions with checking disabled Diego Novillo
@ 2003-12-09 20:31 ` Jan Hubicka
  2003-12-09 20:36 ` Diego Novillo
  1 sibling, 0 replies; 6+ messages in thread
From: Jan Hubicka @ 2003-12-09 20:31 UTC (permalink / raw)
  To: Diego Novillo
  Cc: Steven Bosscher, Jeff Law, Jan Hubicka, Zdenek Dvorak,
	Richard Henderson, gcc

> 
> 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.

This is exactly the same latent problem as exposed by the tail call
patch.  This time it reproduces without bootstrapping on unoptimized
compiler, so we have realistic chance to debug it out.

Honza

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [tree-ssa] New g++/libstdc++ regressions with checking disabled.
  2003-12-09 18:09 [tree-ssa] New g++/libstdc++ regressions with checking disabled Diego Novillo
  2003-12-09 20:31 ` Jan Hubicka
@ 2003-12-09 20:36 ` Diego Novillo
  2003-12-09 23:37   ` Jan Hubicka
  1 sibling, 1 reply; 6+ messages in thread
From: Diego Novillo @ 2003-12-09 20:36 UTC (permalink / raw)
  To: Steven Bosscher, Jeff Law, Jan Hubicka, Zdenek Dvorak, Richard Henderson
  Cc: gcc


Incidentally, please do not commit any patches that do not fix these
regressions.


Thanks.  Diego.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [tree-ssa] New g++/libstdc++ regressions with checking disabled.
  2003-12-09 20:36 ` Diego Novillo
@ 2003-12-09 23:37   ` Jan Hubicka
  2003-12-10 22:16     ` Diego Novillo
  0 siblings, 1 reply; 6+ messages in thread
From: Jan Hubicka @ 2003-12-09 23:37 UTC (permalink / raw)
  To: Diego Novillo
  Cc: Steven Bosscher, Jeff Law, Jan Hubicka, Zdenek Dvorak,
	Richard Henderson, gcc

> 
> Incidentally, please do not commit any patches that do not fix these
> regressions.

I've been looking into it with Jason and it seems to be that culprint is
misscopmilation in cp/class.o (at least replacing it by unoptimized
version makes the bug to go away).
The symptom is that method table contains bogus duplicated overload
entries, so it seems to be somewhere in add_method.

HTH
Honza
> 
> 
> Thanks.  Diego.
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [tree-ssa] New g++/libstdc++ regressions with checking disabled.
  2003-12-09 23:37   ` Jan Hubicka
@ 2003-12-10 22:16     ` Diego Novillo
  2003-12-10 23:01       ` Jan Hubicka
  0 siblings, 1 reply; 6+ messages in thread
From: Diego Novillo @ 2003-12-10 22:16 UTC (permalink / raw)
  To: Jan Hubicka
  Cc: Steven Bosscher, Jeff Law, Zdenek Dvorak, Richard Henderson, gcc

On Tue, 2003-12-09 at 17:16, Jan Hubicka wrote:
> > 
> > Incidentally, please do not commit any patches that do not fix these
> > regressions.
> 
> I've been looking into it with Jason and it seems to be that culprint is
> misscopmilation in cp/class.o (at least replacing it by unoptimized
> version makes the bug to go away).
> The symptom is that method table contains bogus duplicated overload
> entries, so it seems to be somewhere in add_method.
> 
Thanks.

I have reverted the patch that introduced these regressions.  The branch
is open again.


Diego.


        * 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.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [tree-ssa] New g++/libstdc++ regressions with checking disabled.
  2003-12-10 22:16     ` Diego Novillo
@ 2003-12-10 23:01       ` Jan Hubicka
  0 siblings, 0 replies; 6+ messages in thread
From: Jan Hubicka @ 2003-12-10 23:01 UTC (permalink / raw)
  To: Diego Novillo
  Cc: Jan Hubicka, Steven Bosscher, Jeff Law, Zdenek Dvorak,
	Richard Henderson, gcc

> On Tue, 2003-12-09 at 17:16, Jan Hubicka wrote:
> > > 
> > > Incidentally, please do not commit any patches that do not fix these
> > > regressions.
> > 
> > I've been looking into it with Jason and it seems to be that culprint is
> > misscopmilation in cp/class.o (at least replacing it by unoptimized
> > version makes the bug to go away).
> > The symptom is that method table contains bogus duplicated overload
> > entries, so it seems to be somewhere in add_method.
> > 
> Thanks.
> 
> I have reverted the patch that introduced these regressions.  The branch
> is open again.

OK.
I was trying to compare the compilations of that file with and without a
patch but the differences are too long for my tired mind today.  (the
code looks ineed a lot better with the patch)  I will try again tomorrow
unless Richard will beat me :)

Honza
> 
> 
> Diego.
> 
> 
>         * 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.
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-12-10 22:49 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-09 18:09 [tree-ssa] New g++/libstdc++ regressions with checking disabled Diego Novillo
2003-12-09 20:31 ` Jan Hubicka
2003-12-09 20:36 ` Diego Novillo
2003-12-09 23:37   ` Jan Hubicka
2003-12-10 22:16     ` Diego Novillo
2003-12-10 23:01       ` Jan Hubicka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).