[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c
--- 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
-- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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