This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug java/29587] jc1: out of memory allocating 4072 bytes after a total of 708630224 bytes



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]