This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix tree-optimization/17528 and libstdc++ tests
- From: Diego Novillo <dnovillo at redhat dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 16 Sep 2004 21:27:25 -0400
- Subject: Fix tree-optimization/17528 and libstdc++ tests
- Organization: Red Hat Canada
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
{