aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/doc.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-10-22 03:34:32 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-10-22 03:34:32 +0800
commit58d0752fdd1c7363fb1a127cd7e0a86d7602be02 (patch)
tree84fffee930e7b6d02599f3910f284b8641c996a0 /core/vm/doc.go
parent0467a6ceec4973b00c344d2a724f7fb01a6b0aee (diff)
parent8c855324128fa824bb6a7ea8f4ed1224e727fad0 (diff)
downloaddexon-58d0752fdd1c7363fb1a127cd7e0a86d7602be02.tar
dexon-58d0752fdd1c7363fb1a127cd7e0a86d7602be02.tar.gz
dexon-58d0752fdd1c7363fb1a127cd7e0a86d7602be02.tar.bz2
dexon-58d0752fdd1c7363fb1a127cd7e0a86d7602be02.tar.lz
dexon-58d0752fdd1c7363fb1a127cd7e0a86d7602be02.tar.xz
dexon-58d0752fdd1c7363fb1a127cd7e0a86d7602be02.tar.zst
dexon-58d0752fdd1c7363fb1a127cd7e0a86d7602be02.zip
Merge pull request #1883 from obscuren/jit-vm-optimisations
core/vm: JIT segmentation
Diffstat (limited to 'core/vm/doc.go')
-rw-r--r--core/vm/doc.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/vm/doc.go b/core/vm/doc.go
index ab87bf934..debbdb35e 100644
--- a/core/vm/doc.go
+++ b/core/vm/doc.go
@@ -24,9 +24,12 @@ invokes the JIT VM in a seperate goroutine and compiles the byte code in JIT
instructions.
The JIT VM, when invoked, loops around a set of pre-defined instructions until
-it either runs of gas, causes an internal error, returns or stops. At a later
-stage the JIT VM will see some additional features that will cause sets of
-instructions to be compiled down to segments. Segments are sets of instructions
-that can be run in one go saving precious time during execution.
+it either runs of gas, causes an internal error, returns or stops.
+
+The JIT optimiser attempts to pre-compile instructions in to chunks or segments
+such as multiple PUSH operations and static JUMPs. It does this by analysing the
+opcodes and attempts to match certain regions to known sets. Whenever the
+optimiser finds said segments it creates a new instruction and replaces the
+first occurrence in the sequence.
*/
package vm