[LLVMdev] Should LLVM JIT default to lazy or non-lazy?

Jeffrey Yasskin jyasskin at google.com
Wed Oct 28 09:41:53 PDT 2009


In r85295, in response to the discussion at http://llvm.org/PR5184
(Lazy JIT ain't thread-safe), I changed the default JIT from lazy to
non-lazy. It has since come to my attention that this may have been
the wrong change, so I wanted to ask you guys.

A couple reasons to make the default non-lazy compilation:
* The lack of thread-safety surprises new users
* Crashes due to this will be rare and so hard to track down
* The current lazy scheme is almost never the right answer for performance
* It's only one line of code to turn on lazy compilation when it is
the right answer for you.

And a couple to default to lazy compilation:
* It's safe for single-threaded code.
* There are existing users who have assumed this default.
* PPC and ARM don't support non-lazy compilation yet (the tests
currently run the lazy jit).
* Gratuitous changes are bad.

Thoughts?

We can choose the default for lli separately from the JIT's default if we want.



More information about the llvm-dev mailing list