This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Feb 2006 20:38:51 -0000
- Subject: [Bug tree-optimization/26361] [4.2 regression] bootstrap failure on Alpha: xgcc runs out of memory compiling libiberty/md5.c
- References: <bug-26361-2744@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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 +0000, 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