octave-maintainers
[Top][All Lists]
Advanced

[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
>
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]