[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
--- Additional Comments From steven at gcc dot gnu dot org 2005-07-26 20:43 --- This is not yet fixed. The 4.0 branch has the same problem. -- What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
--- Additional Comments From pinskia at physics dot uc dot edu 2005-07-26 20:06 --- Subject: Re: [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination > > > --- Additional Comments From dnovillo at gcc dot gnu dot org 2005-07-26 > 20:04 --- > > Fixed. http://gcc.gnu.org/ml/gcc-patches/2005-07/msg01749.html On the 4.0 branch too? -- Pinski -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
Re: [Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
> > > --- Additional Comments From dnovillo at gcc dot gnu dot org 2005-07-26 > 20:04 --- > > Fixed. http://gcc.gnu.org/ml/gcc-patches/2005-07/msg01749.html On the 4.0 branch too? -- Pinski
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
--- Additional Comments From dnovillo at gcc dot gnu dot org 2005-07-26 20:04 --- Fixed. http://gcc.gnu.org/ml/gcc-patches/2005-07/msg01749.html -- What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-07-26 19:54 --- Subject: Bug 22591 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-07-26 19:53:54 Modified files: gcc: ChangeLog tree-ssa-alias.c gcc/testsuite : ChangeLog gcc/testsuite/gcc.dg/tree-ssa: 20030807-7.c Added files: gcc/testsuite/gcc.dg/tree-ssa: pr22591.c Log message: PR 22591 * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests whether a pointer of type T * may point to objects of type T *. testsuite/ChangeLog PR 22591 * gcc.dg/tree-ssa/pr22591.c: New test. * gcc.dg/tree-ssa/20030807-7.c: XFAIL everywhere. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9554&r2=2.9555 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-alias.c.diff?cvsroot=gcc&r1=2.107&r2=2.108 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5824&r2=1.5825 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr22591.c.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c.diff?cvsroot=gcc&r1=1.4&r2=1.5 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
--- Additional Comments From dnovillo at gcc dot gnu dot org 2005-07-26 16:19 --- Testing patch. The shortcut we were taking in may_alias_p is invalid even with strict aliasing. --- tree-ssa-alias.c25 Jul 2005 12:04:50 - 2.107 +++ tree-ssa-alias.c26 Jul 2005 16:16:34 - @@ -1511,23 +1511,6 @@ may_alias_p (tree ptr, HOST_WIDE_INT mem alias_stats.tbaa_queries++; - /* If VAR is a pointer with the same alias set as PTR, then dereferencing - PTR can't possibly affect VAR. Note, that we are specifically testing - for PTR's alias set here, not its pointed-to type. We also can't - do this check with relaxed aliasing enabled. */ - if (POINTER_TYPE_P (TREE_TYPE (var)) - && var_alias_set != 0 - && mem_alias_set != 0) -{ - HOST_WIDE_INT ptr_alias_set = get_alias_set (ptr); - if (ptr_alias_set == var_alias_set) - { - alias_stats.alias_noalias++; - alias_stats.tbaa_resolved++; - return false; - } -} - /* If the alias sets don't conflict then MEM cannot alias VAR. */ if (!alias_sets_conflict_p (mem_alias_set, var_alias_set)) { -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
--- Additional Comments From dnovillo at gcc dot gnu dot org 2005-07-26 14:46 --- (In reply to comment #31) > Smaller test case: > This works for me. The original test case does abort, though. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
-- What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dnovillo at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2005-07-22 08:23:53 |2005-07-26 14:26:55 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
--- Additional Comments From pcarlini at suse dot de 2005-07-26 13:17 --- Yes, but why P1 -> P2?!? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-07-26 13:10 --- I have (with whatever load of patches applied...) ;; Function ListSwap (ListSwap) ListSwap (x, y) { struct Node * tmp; struct _Node * D.1292; : tmp = x->next; if (tmp != 0B) goto ; else goto ; :; x->next = y->next; y->next = tmp; D.1292 = x->next; x->prev->next = x; D.1292->prev = x; :; return; } -- What|Removed |Added Priority|P1 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591
[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination
-- What|Removed |Added Priority|P2 |P1 Summary|[4.0/4.1 Regression]|[4.0/4.1 Regression] wrong |std::swap() followed by |alias information causes an |list::erase() produces |incorrect redundant load |incorrect list::begin() |elimination http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22591