Hi Zoltan,
I don't think so. It is not worth to do it on a desktop pc since
interpreter is always slower than JIT. However, the story is
different for
embedded systems, when they enter low-memory mode.
Whilst it is certainly true that this would likely be of most benefit
on embedded
Thanks.
Can you please help me understand why SquirellFish needs to generate
squirellFish byte code first before compile it to machine code?
For v8, it compiles JavaScript source code directly into machine code
when it is first executed. There are no intermediate byte codes, no
interpreter.
The last step depends on the architecture (supported or not) and C++
compiler directives. If JIT is enabled (see wtf/Platform.h), it always
generates machine code. Otherwise an interpreter executes the byte code. A
mixed environment (both jit and interpreter) is not yet supported.
Are there
Hi,
Historical reasons. SF byte code had been implemented a year ago than jit.
SF byte code (interpreter) will never go away, since not all devices
support jit, and it is easier to generate JIT code from SF byte code than
from Abstract Syntax Tree. Perhaps the authors can tell you more about
this
Some of the rationale is in this blog post too http://webkit.org/blog/214/introducing-squirrelfish-extreme/
.
For example: “We also think we can get a lot more speedups out of the
JIT through techniques such as type specialization, better register
allocation and liveness analysis. [...]
Hi,
I don't think so. It is not worth to do it on a desktop pc since
interpreter is always slower than JIT. However, the story is different for
embedded systems, when they enter low-memory mode. We made some
experiments before, and it seems possible to switch between jit and
interpreter, but I am
Hi,
Can you please tell me what is the difference between
ByteCodeGenerator.h and JIT.h?
I assume ByteCodeGenerator is convert a raw .js file into JavaScript
VM opecode and will be executed by Webkit JavaScript VM.
and JIT convert a raw .js file into native machine code and will be
executed by
Hi,
The JavaScript engine does 3 steps:
1) Parse JS files
2) Generate SquirellFish byte code (ByteCodeGenerator.h is part of it)
3) Compile SF byte code to machine code by its JIT compiler (optional)
The last step depends on the architecture (supported or not) and C++
compiler directives. If JIT
8 matches
Mail list logo