You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
arkpar 343a361d68 Merge branch 'develop' of https://github.com/ethereum/cpp-ethereum into 10 years ago
..
evmcc Move old VM jump tests from EVM JIT to JSON file 10 years ago
include/evmjit Avoid forbidden function pointer cast. 10 years ago
libevmjit Avoid forbidden function pointer cast. 10 years ago
libevmjit-cpp Merge branch 'develop' of https://github.com/ethereum/cpp-ethereum into 10 years ago
.gitignore Add EVMJIT. 10 years ago
CMakeLists.txt Do not override CMAKE_CXX_FLAGS in evmjit. 10 years ago
LICENSE.md Add EVMJIT. 10 years ago
README.md Add EVMJIT. 10 years ago

README.md

The Ethereum EVM JIT

EVM JIT is a library for just-in-time compilation of Ethereum EVM code. It can be used to substitute classic interpreter-like EVM Virtual Machine in Ethereum client.

Build

Linux / Ubuntu

  1. Install llvm-3.5-dev package
  2. For Ubuntu 14.04 using LLVM deb packages source: http://llvm.org/apt
  3. For Ubuntu 14.10 using Ubuntu packages
  4. Build library with cmake
  5. mkdir build && cd $_
  6. cmake .. && make
  7. Install library
  8. sudo make install
  9. sudo ldconfig

OSX

  1. Install llvm35
  2. brew install llvm35 --disable-shared --HEAD
  3. Build library with cmake
  4. mkdir build && cd $_
  5. cmake -DLLVM_DIR=/usr/local/lib/llvm-3.5/share/llvm/cmake .. && make
  6. Install library
  7. make install (with admin rights?)

Windows

Ask me.

Options

Options to evmjit library can be passed by environmental variables, e.g. EVMJIT_CACHE=0 testeth --jit.

Option Default value Description
EVMJIT_CACHE 1 Enables on disk cache for compiled EVM objects
EVMJIT_DUMP 0 Dumps generated LLVM module to standard output