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