This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug java/29587] jc1: out of memory allocating 4072 bytes after a total of 708630224 bytes
- From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Nov 2006 00:43:29 -0000
- Subject: [Bug java/29587] jc1: out of memory allocating 4072 bytes after a total of 708630224 bytes
- References: <bug-29587-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #9 from dave at hiauly1 dot hia dot nrc dot ca 2006-11-06 00:43 -------
Subject: Re: jc1: out of memory allocating 4072 bytes after a total of
708630224 bytes
> So this ends up being what i thought. The variables aren't being
> collapsed, but i can't figure out why (IE it can't prove they are the
> same). This causes it to give them separate solution bitmaps, and the
> solutions are very large,and involve thousands of variables, so
> thousands * thousands = a lot of memory.
It appears that every one of them has its address taken. The code
skips such variables:
/* We can't eliminate things whose address is taken, or which is
the target of a dereference. */
if (vi->address_taken || vi->indirect_target)
continue;
> However, all of these variables should collapse, as they do in the
> earlier functions.
For the record, I believe we die processing this constructor function:
;; Function _GLOBAL__I_0__ZN3gnu3xml8aelfred215XmlParser$InputC1Ev()
(_GLOBAL__I
_0__ZN3gnu3xml8aelfred215XmlParser$InputC1Ev)
The alias1 files has the following:
...
ESCAPED_VARS = &gnu.xml.xpath.AndExpr.class$$.engine
Collapsing static cycles and doing variable substitution:
Solving graph:
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29587