[LLVMdev] Should LLVM JIT default to lazy or non-lazy?
clattner at apple.com
Wed Oct 28 11:50:10 CDT 2009
On Oct 28, 2009, at 9:41 AM, Jeffrey Yasskin wrote:
> 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
> * 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.
If the objection was about changing the sense of a magic bool, why not
change the argument to be an enum instead? That should make it
extremely clear in the source what behavior is desired.
More information about the LLVMdev