> On Sat, Apr 18, 2009 at 7:01 PM, Dave Korn
> <dave.korn.cyg...@googlemail.com> wrote:
> >
> >    Hi,
> >
> >  I'm getting a stack overflow caused by *very* deep recursion while trying 
> > to
> > build gnu/javax/swing/text/html/parser/HTML_401F.o in libjava, bootstrapping
> > HEAD on i686-pc-cygwin.
> >
> >  With the default per-thread stack size of 2MB, it crashes in
> > tree_ssa_phiprop_1(), which by the time of the crash has recursed to a depth
> > that I can actually honestly describe as "OVER 9000"!  If I boost the stack 
> > to
> > 4MB, I find that the recursion does actually bottom out at some point, since
> > the compile completes, but I tested at 3MB and it crashed at a recursion 
> > depth
> > of 13924.
> >
> >  I know that boostrapping libjava is a tough job and pretty intensive on
> > memory demands, but is this level of nesting actually to be expected, or has
> > something gone astray?
> 
> Well, this is one of the usual ways of iterating over the CFG, so this
> is certainly
> not unexpected.  Maybe for some reason gsi is not scalarized and stack usage
> of that function is unusually high?

There used to be rule that we should not expect CFG walk to fit in
stack. I.e. all CFG walking needs to be written with explicit
worklist/stack instead of using recursion.  Perhaps it should enforce it
here too? :)

Honza

Reply via email to