[Bug tree-optimization/22591] [4.0/4.1 Regression] wrong alias information causes an incorrect redundant load elimination

2005-07-26 Thread steven at gcc dot gnu dot org

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

2005-07-26 Thread pinskia at physics dot uc dot edu

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

2005-07-26 Thread Andrew Pinski
> 
> 
> --- 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

2005-07-26 Thread dnovillo at gcc dot gnu dot org

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

2005-07-26 Thread cvs-commit at gcc dot gnu dot org

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

2005-07-26 Thread dnovillo at gcc dot gnu dot org

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

2005-07-26 Thread dnovillo at gcc dot gnu dot org

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

2005-07-26 Thread dnovillo at gcc dot gnu dot org


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

2005-07-26 Thread pcarlini at suse dot de

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

2005-07-26 Thread rguenth at gcc dot gnu dot org

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

2005-07-26 Thread steven at gcc dot gnu dot org


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