This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix tree-optimization/17528 and libstdc++ tests


Fixes PR17528 and these libstc++ tests:

FAIL: 23_containers/deque/cons/2.cc execution test
FAIL: 23_containers/vector/invalidation/2.cc execution test
FAIL: 23_containers/vector/invalidation/3.cc execution test
FAIL: 23_containers/vector/invalidation/4.cc execution test

When two pointers P and Q may point to each other, and P has no symbols
in its may-alias set, we add Q's aliases to P's set, but after doing
this we would clear Q's aliases (another one of those 'what was I
thinking' moments).

Bootstrapped and tested x86, ppc and x86-64.

Incidentally, we have some new gcc regressions (not caused by this
patch).  They've been introduced today:

         FAIL: gcc.c-torture/execute/memset-3.c compilation
         FAIL: gcc.c-torture/execute/memset-3.c compilation
         FAIL: gcc.c-torture/execute/memset-3.c compilation
         FAIL: gcc.c-torture/execute/memset-3.c compilation
         FAIL: gcc.misc-tests/bprob-1.c compilation
         FAIL: gcc.misc-tests/bprob-2.c compilation
         FAIL: gcc.misc-tests/bprob-2.c compilation
         FAIL: gcc.misc-tests/bprob-2.c compilation
         FAIL: gcc.misc-tests/bprob-2.c compilation
         FAIL: gcc.misc-tests/bprob-2.c compilation
         FAIL: gcc.misc-tests/bprob-2.c compilation
         FAIL: gcc.misc-tests/bprob-2.c compilation

The memset-3.c failure is an ICE in tree-ssa-pre.c:

internal compiler error: tree check: expected value_handle, have addr_expr in value_insert_into_set_bitmap, at tree-ssa-pre.c:470


The bprob-2.c failure is a profile failure:

gcc/testsuite/gcc.misc-tests/bprob-1.c:130: error: corrupted profile info: number of executions for edge 2--2 thought to be 6

There have been more than a few commits today, so I'm not sure which one
may have introduced it.  Does anybody recognize these?


Diego.

	PR tree-optimization/17528
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
	erase the may-alias set for a tag when merging it with
	another.

Index: tree-ssa-alias.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-alias.c,v
retrieving revision 2.35
diff -d -c -p -u -r2.35 tree-ssa-alias.c
--- tree-ssa-alias.c	15 Sep 2004 02:58:26 -0000	2.35
+++ tree-ssa-alias.c	16 Sep 2004 22:53:55 -0000
@@ -977,7 +977,6 @@ compute_flow_insensitive_aliasing (struc
 	{
 	  struct alias_map_d *p_map2 = ai->pointers[j];
 	  tree tag2 = var_ann (p_map2->var)->type_mem_tag;
-	  var_ann_t tag2_ann = var_ann (tag2);
 	  sbitmap may_aliases2 = p_map2->may_aliases;
 
 	  /* If the pointers may not point to each other, do nothing.  */
@@ -999,8 +998,6 @@ compute_flow_insensitive_aliasing (struc
 	      EXECUTE_IF_SET_IN_SBITMAP (may_aliases2, 0, k,
 		  add_may_alias (tag1, referenced_var (k)));
 	      sbitmap_a_or_b (may_aliases1, may_aliases1, may_aliases2);
-	      sbitmap_zero (may_aliases2);
-	      tag2_ann->may_aliases = NULL;
 	    }
 	  else
 	    {



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]