[LLVMdev] VMKit assertion failure

nicolas geoffray nicolas.geoffray at gmail.com
Tue Apr 13 09:33:31 PDT 2010


Hi Eli,

I know the pass that fails, it is MachineCSE. It stack overflows because
there are too many recursive calls to processBlock (line 362 of
lib/CodeGen/MachineCSE.cpp). But the recursion is here on purpose, and I am
sure there are other places where LLVM makes recursive calls. Or is
recursion forbidden in LLVM, and explicitly stated to be so?

Cheers,
Nicolas


On Tue, Apr 13, 2010 at 5:56 PM, Eli Friedman <eli.friedman at gmail.com>wrote:

> On Tue, Apr 13, 2010 at 2:29 AM, Konrad Hinsen
> <konrad.hinsen at fastmail.net> wrote:
> > On 11.04.2010, at 19:14, nicolas geoffray wrote:
> >
> >> On Sun, Apr 11, 2010 at 7:12 PM, Konrad Hinsen <
> konrad.hinsen at fastmail.net> wrote
> >>> I am rather surprised that the size of a method should have an impact
> on stack usage, but then I haven't looked at all at how VMKit works yet.
> That's my next project :-)
> >>>
> >> It has no impact on VMKit. The impact is on LLVM optimization passes
> that do recursive calls.
> >
> > I see... Could those passes simply be skipped for code blocks that are
> too large? Ideally in LLVM, since it's LLVM that imposes the restriction? I
> don't know much about LLVM yet, but my first thought would be that a code
> handling system should be able to deal with code of any size. It may decide
> not to optimize unusual cases, but it certainly shouldn't crash.
>
> You're right, it shouldn't crash.  Can you track down which pass is
> crashing and file a
> bug?
>
> -Eli
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100413/0a28b9f6/attachment.html>


More information about the llvm-dev mailing list