public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing
@ 2004-08-31 19:35 pinskia at gcc dot gnu dot org
  2004-08-31 19:36 ` [Bug tree-optimization/17252] " pinskia at gcc dot gnu dot org
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 19:35 UTC (permalink / raw)
  To: gcc-bugs

Compile the following with -O2 --param lim-expensive=1 and notice that the load of a is pulled out of 
the loop but we cannot do that because we are accessing what a points to inside the loop and since 
char can alias anything (in C) this is a bug.

char *a;
void g()
{
  int i;
  for(i=0;i<10;i++)a[i] = 0;
}
void h()
{
  a = (char*)&a;
}

-- 
           Summary: [3.5 Regression] LIM can create wrong code because of
                    aliasing
           Product: gcc
           Version: 3.5.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: critical
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] LIM can create wrong code because of aliasing
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
@ 2004-08-31 19:36 ` pinskia at gcc dot gnu dot org
  2004-08-31 21:07 ` pinskia at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 19:36 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |3.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] LIM can create wrong code because of aliasing
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
  2004-08-31 19:36 ` [Bug tree-optimization/17252] " pinskia at gcc dot gnu dot org
@ 2004-08-31 21:07 ` pinskia at gcc dot gnu dot org
  2004-08-31 22:22 ` pinskia at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 21:07 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-31 21:07 -------
Here is the better example of where the problem comes into play:
char *a;
void g()
{
  int i;
  a = (char*)&a;
  for(i=0;i<10;i++)a[i] = 0;
}

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] LIM can create wrong code because of aliasing
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
  2004-08-31 19:36 ` [Bug tree-optimization/17252] " pinskia at gcc dot gnu dot org
  2004-08-31 21:07 ` pinskia at gcc dot gnu dot org
@ 2004-08-31 22:22 ` pinskia at gcc dot gnu dot org
  2004-08-31 22:50 ` dnovillo at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 22:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-31 22:22 -------
Diego this is an aliasing bug, a recent one in fact because on the LNO branch we do the right thing but 
on the mainline.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |dnovillo at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2004-08-31 22:22:29
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] LIM can create wrong code because of aliasing
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2004-08-31 22:22 ` pinskia at gcc dot gnu dot org
@ 2004-08-31 22:50 ` dnovillo at gcc dot gnu dot org
  2004-08-31 23:01 ` pinskia at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: dnovillo at gcc dot gnu dot org @ 2004-08-31 22:50 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dnovillo at gcc dot gnu dot org  2004-08-31 22:50 -------

Andrew,

Don't force assign bugs.  If you want me to take a look at it, please CC me and
let me decide whether to take the bug or not.



> Compile the following with -O2 --param lim-expensive=1 and notice that the
load of a is pulled out of 
> the loop but we cannot do that because we are accessing what a points to
inside the loop and since 
> char can alias anything (in C) this is a bug.
> 
> char *a;
> void g()
> {
>   int i;
>   for(i=0;i<10;i++)a[i] = 0;
> }
>
How exactly are we changing what 'a' points-to here?  I see no bug.

Show me the invalid transformation?  LIM does _nothing_ to this code.

$ ./cc1 -O2 -fdump-tree-all-vops a.c --param lim-expensive=1
 g

Analyzing compilation unit
Performing intraprocedural optimizations
Assembling functions:
 g

Execution times (seconds)
 parser                :   0.01 (50%) usr   0.00 ( 0%) sys   0.01 (25%) wall
 dominator optimization:   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 (25%) wall
 expand                :   0.01 (50%) usr   0.01 (100%) sys   0.00 ( 0%) wall
 flow analysis         :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 (25%) wall
 TOTAL                 :   0.02             0.01             0.04
topo:~>
$ diff a.c.t47.loopinit a.c.t48.lim
4,18d3
< ;; 2 loops found, 2 levels
< ;;
< ;; Loop 0:
< ;;  header -1, latch -2, pre-header -1
< ;;  depth 0, level 2, outer -1
< ;;  nodes: -1 0 1 3 2 -2
< ;;
< ;; Loop 1:
< ;;  header 1, latch 3, pre-header -1
< ;;  depth 1, level 1, outer 0
< ;;  nodes: 1 3
< ;; 0 succs { 1 }
< ;; 1 succs { 2 3 }
< ;; 3 succs { 1 }
< ;; 2 succs { -2 }
topo:~>
$ ./cc1 --version
GNU C version 3.5.0 20040831 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 3.5.0 20040831 (experimental).
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129237


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|dnovillo at gcc dot gnu dot |unassigned at gcc dot gnu
                   |org                         |dot org
             Status|ASSIGNED                    |NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] LIM can create wrong code because of aliasing
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2004-08-31 22:50 ` dnovillo at gcc dot gnu dot org
@ 2004-08-31 23:01 ` pinskia at gcc dot gnu dot org
  2004-08-31 23:05 ` [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything pinskia at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 23:01 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-31 23:01 -------
This does not work for me the same way but this is still an aliasing bug.

tin:~/src/gnu/gcctest>gcc -v
Reading specs from /home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/3.5.0/specs
Configured with: /home/gates/pinskia/src/gnu/gcc/src/configure --target=i686-pc-linux-gnu --
host=i686-pc-linux-gnu --enable-__cxa_atexit --enable-languages=c++,objc,java --prefix=/home/
gates/pinskia/linux --enable-threads=posix --enable-sharedThread model: posixgcc version 3.5.0 
20040831 (experimental)

--- pr17252.c.t47.loopinit      2004-08-31 18:46:21.190000000 -0400
+++ pr17252.c.t48.lim   2004-08-31 18:46:21.240000000 -0400
@@ -1,21 +1,6 @@
 
 ;; Function g (g)
 
-;; 2 loops found, 2 levels
-;;
-;; Loop 0:
-;;  header -1, latch -2, pre-header -1
-;;  depth 0, level 2, outer -1
-;;  nodes: -1 0 1 3 2 -2
-;;
-;; Loop 1:
-;;  header 1, latch 3, pre-header -1
-;;  depth 1, level 1, outer 0
-;;  nodes: 1 3
-;; 0 succs { 1 }
-;; 1 succs { 2 3 }
-;; 3 succs { 1 }
-;; 2 succs { -2 }
 g ()
 {
   int i;
@@ -25,10 +10,10 @@ g ()
   char * a.0;
 
 <bb 0>:
+  a.0_4 = a;
 
   # i_15 = PHI <0(0), i_8(3)>;
 <L0>:;
-  a.0_4 = a;
   i.1_5 = (unsigned int)i_15;
   i.2_6 = (char *)i.1_5;
   T.3_7 = a.0_4 + i.2_6;

Basically since *a can change a by the definition of the C aliasing rules we cannot move the load of the 
global out of the loop.

One should note that:
  #   TMT.5<D1139>_11 = V_MAY_DEF <TMT.5<D1139>_14>;
  *T.3<D1126>_7 = 0;
there is no V_MAY_DEF for the global a at all when there should be.

Anyways Danny told me to assign it to you:
[14:56] < DannyB> You should probably retitle the bug and assign it to diego then

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dnovillo at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2004-08-31 23:01 ` pinskia at gcc dot gnu dot org
@ 2004-08-31 23:05 ` pinskia at gcc dot gnu dot org
  2004-08-31 23:07 ` dnovillo at redhat dot com
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 23:05 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-31 23:05 -------
Here is another example without LIM:
char *a;
void g()
{
  a[0] = 0;
  a[1] = 0;
}
there should be two loads of a.

It broke between 2004-05-11 and 2004-05-14.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[3.5 Regression] LIM can    |[3.5 Regression] not marking
                   |create wrong code because of|char types as aliasing
                   |aliasing                    |anything


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2004-08-31 23:05 ` [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything pinskia at gcc dot gnu dot org
@ 2004-08-31 23:07 ` dnovillo at redhat dot com
  2004-08-31 23:11 ` pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: dnovillo at redhat dot com @ 2004-08-31 23:07 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dnovillo at redhat dot com  2004-08-31 23:07 -------
Subject: Re:  [3.5 Regression] LIM can create
	wrong code because of aliasing

On Tue, 2004-08-31 at 19:01, pinskia at gcc dot gnu dot org wrote:

> @@ -25,10 +10,10 @@ g ()
>    char * a.0;
>  
>  <bb 0>:
> +  a.0_4 = a;
>  
>    # i_15 = PHI <0(0), i_8(3)>;
>  <L0>:;
> -  a.0_4 = a;
>    i.1_5 = (unsigned int)i_15;
>    i.2_6 = (char *)i.1_5;
>    T.3_7 = a.0_4 + i.2_6;
> 
> Basically since *a can change a by the definition of the C aliasing rules we cannot move the load of the 
> global out of the loop.
> 
Well, since I can't seem to reproduce it here, I can't really help.  Do
you have any local changes to LIM?


Diego.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2004-08-31 23:07 ` dnovillo at redhat dot com
@ 2004-08-31 23:11 ` pinskia at gcc dot gnu dot org
  2004-08-31 23:21 ` pinskia at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 23:11 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-31 23:11 -------
The last example broke on the tree-ssa branch: between 2003-12-17 and 2003-12-18.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2004-08-31 23:11 ` pinskia at gcc dot gnu dot org
@ 2004-08-31 23:21 ` pinskia at gcc dot gnu dot org
  2004-08-31 23:26 ` dnovillo at redhat dot com
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 23:21 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-31 23:21 -------
Hmm, For the last example I think this patch caused it: <http://gcc.gnu.org/ml/gcc-patches/2003-12/
msg01584.html>. but that code was removed in Feburary.

Diego also I should note that Phil's regression hunter also can reproduce this bug (the one related to 
LIM).

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dberlin at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2004-08-31 23:21 ` pinskia at gcc dot gnu dot org
@ 2004-08-31 23:26 ` dnovillo at redhat dot com
  2004-09-01  0:17 ` pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: dnovillo at redhat dot com @ 2004-08-31 23:26 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dnovillo at redhat dot com  2004-08-31 23:26 -------
Subject: Re:  [3.5 Regression] not marking
	char types as aliasing anything

On Tue, 2004-08-31 at 19:21, pinskia at gcc dot gnu dot org wrote:
> ------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-31 23:21 -------
> Hmm, For the last example I think this patch caused it: <http://gcc.gnu.org/ml/gcc-patches/2003-12/
> msg01584.html>. but that code was removed in Feburary.
> 
> Diego also I should note that Phil's regression hunter also can reproduce this bug (the one related to 
> LIM).
>
<dnovillo> i think i know where the bug is.  We have the case a=&a, there's a shortcut in may_alias_p that says 'a pointer can't possibly have its own address'.  and we do check if the alias set of the variable is != 0, we don't check whether the alias set of *p is != 0. try this
<dnovillo> @@ -1532,7 +1531,8 @@ may_alias_p (tree ptr, HOST_WIDE_INT mem
<dnovillo>       for PTR's alias set here, not its pointed-to type.  We also can't
<dnovillo>       do this check with relaxed aliasing enabled.  */
<dnovillo>    if (POINTER_TYPE_P (TREE_TYPE (var))
<dnovillo> -      && var_alias_set != 0)
<dnovillo> +      && var_alias_set != 0
<dnovillo> +      && mem_alias_set != 0)
<dnovillo>      {
<dnovillo>        HOST_WIDE_INT ptr_alias_set = get_alias_set (ptr);
<dnovillo>        if (ptr_alias_set == var_alias_set)


Diego.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2004-08-31 23:26 ` dnovillo at redhat dot com
@ 2004-09-01  0:17 ` pinskia at gcc dot gnu dot org
  2004-09-15  2:58 ` [Bug tree-optimization/17252] [4.0 " cvs-commit at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-09-01  0:17 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-09-01 00:17 -------
Yes that patch fixed it, thanks Diego.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [4.0 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2004-09-01  0:17 ` pinskia at gcc dot gnu dot org
@ 2004-09-15  2:58 ` cvs-commit at gcc dot gnu dot org
  2004-09-15  3:03 ` dnovillo at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-09-15  2:58 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-09-15 02:58 -------
Subject: Bug 17252

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	dnovillo@gcc.gnu.org	2004-09-15 02:58:28

Modified files:
	gcc            : ChangeLog tree-ssa-alias.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gcc.c-torture/execute: pr17252.c 

Log message:
	PR tree-optimization/17252
	* tree-ssa-alias.c (may_alias_p): Don't assume that a
	pointer may not point to itself when using relaxed
	aliasing rules.
	
	testsuite/ChangeLog
	
	PR tree-optimization/17252
	* gcc.c-torture/execute/pr17252.c: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.5452&r2=2.5453
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-alias.c.diff?cvsroot=gcc&r1=2.34&r2=2.35
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4289&r2=1.4290
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/pr17252.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [4.0 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2004-09-15  2:58 ` [Bug tree-optimization/17252] [4.0 " cvs-commit at gcc dot gnu dot org
@ 2004-09-15  3:03 ` dnovillo at gcc dot gnu dot org
  2004-09-16 21:23 ` danglin at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: dnovillo at gcc dot gnu dot org @ 2004-09-15  3:03 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dnovillo at gcc dot gnu dot org  2004-09-15 03:03 -------

Fix: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01509.html

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [4.0 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2004-09-15  3:03 ` dnovillo at gcc dot gnu dot org
@ 2004-09-16 21:23 ` danglin at gcc dot gnu dot org
  2004-09-16 21:26 ` dnovillo at redhat dot com
  2004-09-17  6:34 ` danglin at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: danglin at gcc dot gnu dot org @ 2004-09-16 21:23 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From danglin at gcc dot gnu dot org  2004-09-16 21:23 -------
The test for this PR fails on big-endian machines.  The following doesn't
change what 'a' is pointing to:

  /* Change what 'a' is pointing to.  */
  a[0] = 0;


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [4.0 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2004-09-16 21:23 ` danglin at gcc dot gnu dot org
@ 2004-09-16 21:26 ` dnovillo at redhat dot com
  2004-09-17  6:34 ` danglin at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: dnovillo at redhat dot com @ 2004-09-16 21:26 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dnovillo at redhat dot com  2004-09-16 21:26 -------
Subject: Re:  [4.0 Regression] not marking
	char types as aliasing anything

On Thu, 2004-09-16 at 17:23, danglin at gcc dot gnu dot org wrote:
> ------- Additional Comments From danglin at gcc dot gnu dot org  2004-09-16 21:23 -------
> The test for this PR fails on big-endian machines.  The following doesn't
> change what 'a' is pointing to:
> 
>   /* Change what 'a' is pointing to.  */
>   a[0] = 0;
> 
Richard Guenther suggested changing that to a[0]++.  Seems reasonable to
me.  Could you try with that and see if that works?


Thanks.  Diego.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

* [Bug tree-optimization/17252] [4.0 Regression] not marking char types as aliasing anything
  2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2004-09-16 21:26 ` dnovillo at redhat dot com
@ 2004-09-17  6:34 ` danglin at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: danglin at gcc dot gnu dot org @ 2004-09-17  6:34 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From danglin at gcc dot gnu dot org  2004-09-17 06:34 -------
This fixes the fails for this test on hppa-unknown-linux-gnu.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17252


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

end of thread, other threads:[~2004-09-17  6:34 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-31 19:35 [Bug tree-optimization/17252] New: [3.5 Regression] LIM can create wrong code because of aliasing pinskia at gcc dot gnu dot org
2004-08-31 19:36 ` [Bug tree-optimization/17252] " pinskia at gcc dot gnu dot org
2004-08-31 21:07 ` pinskia at gcc dot gnu dot org
2004-08-31 22:22 ` pinskia at gcc dot gnu dot org
2004-08-31 22:50 ` dnovillo at gcc dot gnu dot org
2004-08-31 23:01 ` pinskia at gcc dot gnu dot org
2004-08-31 23:05 ` [Bug tree-optimization/17252] [3.5 Regression] not marking char types as aliasing anything pinskia at gcc dot gnu dot org
2004-08-31 23:07 ` dnovillo at redhat dot com
2004-08-31 23:11 ` pinskia at gcc dot gnu dot org
2004-08-31 23:21 ` pinskia at gcc dot gnu dot org
2004-08-31 23:26 ` dnovillo at redhat dot com
2004-09-01  0:17 ` pinskia at gcc dot gnu dot org
2004-09-15  2:58 ` [Bug tree-optimization/17252] [4.0 " cvs-commit at gcc dot gnu dot org
2004-09-15  3:03 ` dnovillo at gcc dot gnu dot org
2004-09-16 21:23 ` danglin at gcc dot gnu dot org
2004-09-16 21:26 ` dnovillo at redhat dot com
2004-09-17  6:34 ` danglin at gcc dot gnu dot org

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