[LLVMdev] MultiSource/Applications/lemon slow in JIT

Dale Johannesen dalej at apple.com
Wed May 21 10:57:11 PDT 2008


On May 21, 2008, at 6:09 AM, Matthijs Kooijman wrote:

> Hi,
>
> I've been toying around with the testsuite for a bit, and after  
> recompiling
> llvm-gcc a bunch of times and fixing a nasty bashism bug, I actually  
> got it to
> run and pass most tests.
>
> When running, I noticed a very long runtime on the lemon test. At  
> first I
> suspected an infinite loop, but it turned out the test simply needed  
> around
> 1000 seconds to run. Some investigation turned out that the lemon  
> program does
> a lot of forking (it runs every input file 20 times, so that's  
> around 200
> forks). However, since the forking happens quite early in the main  
> function,
> it happens before most of the program is JITted. So, every one of  
> these forked
> process is taking a few seconds to compile the other needed  
> functions, over
> and over again.
>
> A solution for this problem seems to be to run the lemon test with the
> -no-lazy option, so things get compiled before forking. In my case,  
> this
> reduced runtime from 1000+ seconds to only 16 seconds.
>
> Intrestingly enough, I can't seem to find similar behaviour in the  
> test
> results on llvm.org/nightlytest (though I only checked two machines  
> [since the
> results take ages to load...] of which
> only one actually ran the test). Am I the only one that is  
> experiencing this?

I have noticed a timeout on lemon JIT, hadn't investigated to see  
whether looping or just slow, thanks!

It's true it's not failing in the nightly logs, but if the number in  
the "Today's JIT" column has anything to do with runtime (another  
Feature of that display is that it nowhere explains what any of the  
numbers mean), it is taking a very long time, about 6x as long as any  
other Multisource JIT run.  Is the timeout disabled in those runs  
somehow?

I don't know anything about the test, but your patch works for me.

> Anyhow, the below patch fixes the problem for me, good to commit?
>
> Gr.
>
> Matthijs
>
>
> Index: MultiSource/Applications/lemon/Makefile
> ===================================================================
> --- MultiSource/Applications/lemon/Makefile     (revision 51189)
> +++ MultiSource/Applications/lemon/Makefile     (working copy)
> @@ -8,5 +8,8 @@
> include $(LEVEL)/Makefile.config
>
> include ../../Makefile.multisrc
> +
> +JIT_OPTS += -no-lazy
> +
> DIFFPROG := $(PROGDIR)/DiffOutput.sh "diff "
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list