[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Default configure option for JIT
From: |
Rik |
Subject: |
Re: Default configure option for JIT |
Date: |
Sun, 27 Oct 2013 13:57:01 -0700 |
On 10/27/2013 12:59 PM, Michael D. Godfrey wrote:
> On 10/27/2013 03:38 PM, Rik wrote:
>> 10/27/13
>>
>> One question for the 3.8 release is what to do about JIT? Currently it is
>> disabled in configure by default and one must explicitly enable it with
>> '--enable-jit'. Another option would be to enable it by default at compile
>> time (and if the LLVM libraries are available), but disable it at runtime
>> by setting the default value of jit_enable to false.
>>
>> The JIT code doesn't appear to cause any problems, and 'make check' passes
>> with jit enabled or disabled. This would suggest making it available to
>> users if they want to play around with it. On the other hand, running the
>> jit.tst file under valgrind produces a segfault. Also, even when jit is
>> disabled, running under valgrind produces failing tests with 'make check'.
>> This could all be the result of the valgrind environment or it might
>> indicate that the JIT is doing something odd which just doesn't happen to
>> occur during a normal run of 'make check'.
>>
>> Are there any opinions or good arguments for one approach or another?
>>
>> --Rik
> As you know, I am a JIT fan. The problems under valgrind are a worry,
> especially
> since it is unclear what the problem is. However, users of the release
> system,
> particularly those who just get it as a package, are not going to be
> trying valgrind.
> If valgrind is really finding memory allocation or other problems with
> runtime
> disabled there is a more serious worry. My experience is that I have for
> quite a while
> always built with --enable-jit and turned it on in my .octaverc files.
> Some of the time
> I have set the count variable to a low values so that JIT actually runs
> even on very short
> loops and vectors. I sometimes turn debug_jit on. I have had no problems.
I always run with JIT enabled as well and I never have any problems
either. But, with valgrind the segfault and errors are repeatable.
>
> Are the failing tests under make check just the test fails but valgrind
> does not
> complain? If so, this suggests a valgrind problem.
No, even with "jit_enable (0)", I get tests to fail that don't fail when
running without valgrind. This is an example, which isn't part of the
failing tests in convn.cc,
>>>>> processing
/home/rik/wip/Projects_Mine/octave-dbg/liboctave/util/oct-inttypes.cc-tst
***** test
a = 1.9*2^61; b = uint64 (a); b++; assert (b > a);
!!!!! test failed
assert (b > a) failed
It suggests that somewhere, someone, is relying on memory being allocated
in a certain fashion, and that when jit or valgrind interferes with the
default placement trouble results.
--Rik
>
> So, I would prefer the compile at build time ON, runtime OFF.
>
> Michael
>
>
>