Paweł Bylica
|
057611fbb3
|
Extend JIT interface to allow only compilation of EVM code.
Make code availability checking thread-safe.
|
10 years ago |
Paweł Bylica
|
51bacd2525
|
Separate compile and execute jobs in JIT.
|
10 years ago |
Paweł Bylica
|
a6ef3f40d1
|
Avoid forbidden function pointer cast.
|
10 years ago |
Paweł Bylica
|
81ad029af9
|
MSVC fixes.
|
10 years ago |
Paweł Bylica
|
5f4557eae2
|
EVM JIT C++ interface in one header.
|
10 years ago |
Paweł Bylica
|
8fe2b1a3d6
|
JIT implementation cleanups.
|
10 years ago |
Paweł Bylica
|
9cc8c7895e
|
Code migration.
|
10 years ago |
Paweł Bylica
|
ccdb74eb0b
|
Code migration.
|
10 years ago |
Paweł Bylica
|
b8fb3a138c
|
Better style of ExecutionEngine initialization. Some eth::jit -> evmjit namespace transfers.
|
10 years ago |
Paweł Bylica
|
c66a7e49d3
|
Fix cache mode handling.
|
10 years ago |
Paweł Bylica
|
c56858f498
|
Merge ExecutionContext and Runtime classes
|
10 years ago |
Paweł Bylica
|
e0c176f377
|
Extract execution context from ExecutionEngine::run.
|
10 years ago |
Paweł Bylica
|
9ca47fe0cf
|
JIT class: the EVM JIT facade.
The JIT class added, future public EVM JIT library interface. Currently it supports queries about EVM code status.
|
10 years ago |
Paweł Bylica
|
463025e15d
|
Implementation of MUL workaround in "LLVM pass" way.
|
10 years ago |
Paweł Bylica
|
2b9eab188a
|
Remove some LLVM 3.5 bugs workarounds
|
10 years ago |
Paweł Bylica
|
5cd3ee6e99
|
Port to LLVM 3.7
|
10 years ago |
Paweł Bylica
|
d4d33c026b
|
Change instruction scheduler
Try different instruction scheduler in LLVM, other crashes sometimes.
Also parse command line options properly for random tests.
|
10 years ago |
Paweł Bylica
|
3c1e1081ef
|
Add option to preload cache
|
10 years ago |
Paweł Bylica
|
6e2447c976
|
Code cleanup
|
10 years ago |
Paweł Bylica
|
bc13e986cd
|
Select list-burr LLVM instruction scheduler
Workaround for LLVM bug https://llvm.org/bugs/show_bug.cgi?id=22304
in source scheduler.
|
10 years ago |
Paweł Bylica
|
16c26613f1
|
Additional cache options: readonly, writeonly and clear.
|
10 years ago |
Paweł Bylica
|
d6f4b07a07
|
Cache pointers for emited functions
|
10 years ago |
Paweł Bylica
|
164ef01a9c
|
Free memory data, place Runtime in ExecutionEngine
|
10 years ago |
Paweł Bylica
|
c4b9aca7ee
|
Change Runtime interface
|
10 years ago |
Paweł Bylica
|
3197dca8a5
|
Remove old memory backend
|
10 years ago |
Paweł Bylica
|
6d337d274a
|
Using Array as a second memory
|
10 years ago |
Gav Wood
|
2c6b18f01b
|
Add EVMJIT.
|
10 years ago |
Paweł Bylica
|
cc8db62f88
|
Destroy LLVM ManagedStatics
|
10 years ago |
Paweł Bylica
|
5e01d32286
|
Use llvm/CommandLine library for JIT options
|
10 years ago |
Paweł Bylica
|
fc5b300d38
|
Optimizer: separate LLVM IR optimization passes from compiler
|
10 years ago |
Paweł Bylica
|
4d2dc802e8
|
Introducing CHECK macro - an assert that always has a value
|
10 years ago |
Paweł Bylica
|
93cb4866fd
|
Includes reordering, GCC conversion warnings enabled
Includes order as described in Coding Standards of cpp-ethereum project.
GCC warnings about lossy conversions enabled.
|
10 years ago |
Paweł Bylica
|
f7fcc7c029
|
Cleanup ExecutionEngine creation
|
10 years ago |
Paweł Bylica
|
f47cd20e8e
|
Correct usage of LLVM builtin setjmp/longjmp. External setjmp was eliminated, hopefully Windows will be happier now.
|
10 years ago |
Lu Guanqun
|
cf74b2a875
|
change typedef to using according to preferred coding style
|
10 years ago |
Paweł Bylica
|
4bcee00be9
|
#include cleanups
|
10 years ago |
Paweł Bylica
|
9640644f72
|
Place warning pragmas for LLVM includes in separated files
|
10 years ago |
Paweł Bylica
|
8fd2b949c1
|
Fix cache bug: code was always compiled
|
10 years ago |
Paweł Bylica
|
83701a2fcd
|
Stats for execution states times
|
10 years ago |
Paweł Bylica
|
f70b7f5fd2
|
Use code (and code size) as constants
|
10 years ago |
Paweł Bylica
|
d27352b8e1
|
Start of stats collector
|
10 years ago |
Paweł Bylica
|
bb9df15d75
|
Generate BuildInfo header and display some information about evmjit library on demand
|
10 years ago |
Paweł Bylica
|
970939ddb7
|
Fix after-merge problems
|
10 years ago |
Paweł Bylica
|
c36cad8469
|
Environment options for EVM JIT updated:
- EVMJIT_CACHE=0 disables disk cache, default 1
- EVMJIT_DUMP=1 dumps LLVM module to error output, default 0
|
10 years ago |
Paweł Bylica
|
c914c877e3
|
Add code hash to RuntimeData. JIT is using it as an code identifier (do not need to invent any internal hashing)
|
10 years ago |
Paweł Bylica
|
64532b6b0a
|
Environment options for EVM JIT updated:
- EVMJIT_CACHE=0 disables disk cache, default 1
- EVMJIT_DUMP=1 dumps LLVM module to error output, default 0
|
10 years ago |
Paweł Bylica
|
5e29eef349
|
Replacing code references (usually vector<byte>&) with code_iterator pair. Code is now extracted from RuntimeData what removes copy in C interface.
|
10 years ago |
Paweł Bylica
|
25d8873440
|
Merge commit '3dcf30463b961e3fe47b48b2024bbf3d5b5ce675' into evmjit
Conflicts:
evmjit/CMakeLists.txt
evmjit/libevmjit-cpp/CMakeLists.txt
evmjit/libevmjit-cpp/Env.cpp
evmjit/libevmjit-cpp/JitVM.cpp
evmjit/libevmjit/Arith256.cpp
evmjit/libevmjit/BasicBlock.cpp
evmjit/libevmjit/BasicBlock.h
evmjit/libevmjit/CMakeLists.txt
evmjit/libevmjit/Cache.cpp
evmjit/libevmjit/Common.h
evmjit/libevmjit/Compiler.cpp
evmjit/libevmjit/ExecutionEngine.cpp
evmjit/libevmjit/ExecutionEngine.h
evmjit/libevmjit/Ext.cpp
evmjit/libevmjit/Ext.h
evmjit/libevmjit/Runtime.cpp
evmjit/libevmjit/Runtime.h
evmjit/libevmjit/RuntimeData.h
evmjit/libevmjit/Utils.cpp
evmjit/libevmjit/Utils.h
evmjit/libevmjit/interface.cpp
|
10 years ago |
Paweł Bylica
|
003ba383c3
|
Do not copy return data inside JIT
|
10 years ago |
Paweł Bylica
|
84b6251181
|
Remove env_sha3 symbol reference in evmjit shared library to be build with no unresolved symbols
|
10 years ago |