lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 22 February 2017 at 02:54, William Ahern <william@25thandclement.com> wrote:
> ChakraCore seems to implement both trace-based and method-based JIT
> compilation:
>
>   When ChakraCore notices that a function or loop-body is being invoked
>   multiple times in the interpreter, it queues up the function in
>   ChakraCore's background JIT compiler pipeline to generate optimized JIT'ed
>   code for the function. Once the JIT'ed code is ready, ChakraCore replaces
>   the function or loop entry points such that subsequent calls to the
>   function or the loop start executing the faster JIT'ed code instead of
>   continuing to execute the bytecode via the interpreter.
>
>   Source: https://github.com/Microsoft/ChakraCore/wiki/Architecture-Overview


I'm not sure that implies tracing, as it mentions "a background JIT
compiler" so it compiles separatedly from execution, while a trace
compiler gets as input the actual stream of instructions as executed
by the interpreter (so it gets data type information and code inlining
for free)

-- 
Javier