[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-21 Thread pinskia at gcc dot gnu dot org


--- Comment #25 from pinskia at gcc dot gnu dot org  2006-02-22 05:50 
---
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |blocker


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread law at redhat dot com


--- Comment #17 from law at redhat dot com  2006-02-20 20:32 ---
Subject: Re:  [4.2 regression] bootstrap
failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

On Mon, 2006-02-20 at 05:11 +, pinskia at gcc dot gnu dot org wrote:
 
 --- Comment #16 from pinskia at gcc dot gnu dot org  2006-02-20 05:11 
 ---
 (In reply to comment #15)
  With my reduced testcase (well s/long long/long/), we get:
D.1552_8 = -a_7;
  a_7: [0, +INF]  EQUIVALENCES: { } (0 elements)
 Shouldn't that just be marked as varying instead as a_7 is unsigned?
No, because if it's marked as varying we will not use it to
refine any other VRP ranges.

jeff


-- 


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread pinskia at gcc dot gnu dot org


--- Comment #18 from pinskia at gcc dot gnu dot org  2006-02-20 20:34 
---
(In reply to comment #17)
 No, because if it's marked as varying we will not use it to
 refine any other VRP ranges.

But this is an unsigned value which is varrying.  [0, +INF] for an unsigned
value is varrying, I don't see why it would not be marked as such.


-- 


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread law at redhat dot com


--- Comment #19 from law at redhat dot com  2006-02-20 20:38 ---
Subject: Re:  [4.2 regression] bootstrap
failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

On Mon, 2006-02-20 at 20:35 +, pinskia at gcc dot gnu dot org wrote:
 
 --- Comment #18 from pinskia at gcc dot gnu dot org  2006-02-20 20:34 
 ---
 (In reply to comment #17)
  No, because if it's marked as varying we will not use it to
  refine any other VRP ranges.
 
 But this is an unsigned value which is varrying.  [0, +INF] for an unsigned
 value is varrying, I don't see why it would not be marked as such.
I understand your point, but if you look at how the simplifications
work in tree-vrp.c it's better to go ahead and give it an unsigned's
range rather than VR_VARYING.

Just like it's better to give an object the range [0, 1] if it's
a boolean.  It allows other simplifications that are not going to
take place with VR_VARYING.

While we could certain tweak all that code to look at the type's
information, it's far easier to use assign the object a range.

jeff


-- 


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread law at redhat dot com


--- Comment #20 from law at redhat dot com  2006-02-20 20:39 ---
Subject: Re:  [4.2 regression] bootstrap failure on
Alpha: xgcc runs out of memory compiling libiberty/md5.c

On Mon, 2006-02-20 at 03:11 +, roger at eyesopen dot com wrote:
 
 --- Comment #10 from roger at eyesopen dot com  2006-02-20 03:11 ---
 Analyzing the code in comment #5, this looks like a bad interaction between
 ivopts and vrp.  Either of -fno-ivopts or -fno-tree-vrp cures the problem.
 But it looks like the output of .084t.ivopts is reasonable.
FYI

I won't be able to look at this until tues or possibly wed depending
on where we stand with teh Ada regression.

jeff


-- 


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread roger at eyesopen dot com


--- Comment #21 from roger at eyesopen dot com  2006-02-20 21:07 ---
Created an attachment (id=10881)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10881action=view)
patch

I believe the following patch should resolve the problem.  Bootstrap and
regression test in progress.  The issue is that -[0,(unsigned)-1] is being
miscalculated in extract_range_from_unary_expr.  This was simply negating
the upper and lower bounds, and came up with [0,1].  If someone could double
check my logic in the attached patch, [x, y] - [-y, -x] when x  0, [0, 0]
- [0, 0], and [0, y] - varying, i.e. [0, (unsigned)-1] when y  0.


-- 


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread roger at eyesopen dot com


--- Comment #22 from roger at eyesopen dot com  2006-02-20 21:33 ---
Created an attachment (id=10882)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10882action=view)
revised patch

Doh!  Although the previous attachment contained the necessary logic, it had
a few typos which will complicate people's attempts to try it out.  Revised.


-- 

roger at eyesopen dot com changed:

   What|Removed |Added

  Attachment #10881|0   |1
is obsolete||


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread roger at eyesopen dot com


--- Comment #23 from roger at eyesopen dot com  2006-02-20 21:37 ---
Created an attachment (id=10883)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10883action=view)
really revised patch

Grrr!  The previous attachment was identical to the original.  Third times a
charm (or I'll just give up an commit it once bootstrap and regtest complete!).


-- 

roger at eyesopen dot com changed:

   What|Removed |Added

  Attachment #10882|0   |1
is obsolete||


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-20 Thread sayle at gcc dot gnu dot org


--- Comment #24 from sayle at gcc dot gnu dot org  2006-02-21 02:28 ---
Subject: Bug 26361

Author: sayle
Date: Tue Feb 21 02:28:03 2006
New Revision: 111327

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=111327
Log:

PR tree-optimization/26361
* tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
of unsigned integer types.

* gcc.dg/tree-ssa/vrp27.c: New test case.


Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/vrp27.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c


-- 


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-19 Thread pinskia at gcc dot gnu dot org


--- Comment #13 from pinskia at gcc dot gnu dot org  2006-02-20 04:59 
---
I forgot to mention with my reduced non ivopts depending testcase this makes
this indepenent of those two bugs.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|bootstrap   |tree-optimization


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-19 Thread pinskia at gcc dot gnu dot org


--- Comment #14 from pinskia at gcc dot gnu dot org  2006-02-20 05:00 
---
Also forgot to mention my testcase is indepenent of 64 bitness of the target.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  GCC build triplet|alphaev68-linux-gnu |
   GCC host triplet|alphaev68-linux-gnu |
 GCC target triplet|alphaev68-linux-gnu |


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-19 Thread pinskia at gcc dot gnu dot org


--- Comment #15 from pinskia at gcc dot gnu dot org  2006-02-20 05:09 
---
With my reduced testcase (well s/long long/long/), we get:
  D.1552_8 = -a_7;
a_7: [0, +INF]  EQUIVALENCES: { } (0 elements)
D.1552_8: [0, 1]  EQUIVALENCES: { } (0 elements)

on the mainline, while in 4.1.0 we got:
  D.1293_8 = -a_7;
a_7: VARYING
D.1293_8: VARYING


-- 


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



[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c

2006-02-19 Thread pinskia at gcc dot gnu dot org


--- Comment #16 from pinskia at gcc dot gnu dot org  2006-02-20 05:11 
---
(In reply to comment #15)
 With my reduced testcase (well s/long long/long/), we get:
   D.1552_8 = -a_7;
 a_7: [0, +INF]  EQUIVALENCES: { } (0 elements)
Shouldn't that just be marked as varying instead as a_7 is unsigned?

Likewise for the orginal testcase in this bug.


-- 


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