Gav Wood
2c6b18f01b
Add EVMJIT.
10 years ago
Paweł Bylica
0ea927d662
Global/dynamic stack implementation with realloc
10 years ago
Paweł Bylica
912f983377
Stack improvements: all helper functions are generated on demand, no global alloca for arguments
10 years ago
Paweł Bylica
3401b0b4ac
Workaround for printing extractvalue instruction in DOT language
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
be368ba871
Get endianess from LLVM
10 years ago
Paweł Bylica
2f604a49ef
Testing some LLVM optimization passes
10 years ago
Paweł Bylica
fc5b300d38
Optimizer: separate LLVM IR optimization passes from compiler
10 years ago
Paweł Bylica
5e4a88fc0d
Build fix
10 years ago
Paweł Bylica
1b6a7cf736
Safe assert
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
1e79c05859
Better fix for wrong prerelease version component parsing
10 years ago
Paweł Bylica
a50a891cdb
Fix wrong prerelease version component parsing
10 years ago
Paweł Bylica
375ea71e4c
Workaround for buggy LLVM shl operator for i512
10 years ago
Paweł Bylica
3c5c3496cf
Helper function name fix
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
Paweł Bylica
2faa67bae2
Dynamic stack modification: do not use longjmp in external functions
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
49893ce891
Add `unreachable` instruction to fake module generated by Cache
10 years ago
Lu Guanqun
699ab0045c
fix Mac build error for evmjit
We need to include <iostream>, otherwise it complains:
cpp-ethereum/evmjit/libevmjit/ExecutionEngine.cpp:147:2:
error: implicit instantiation of undefined template
'std::__1::basic_ostream<char, std::__1::char_traits<char> >'
clog(JIT) << " + " << std::chrono::duration_cast<std::chrono::milliseconds>(executionEndTime - executionStartTime).cou...
^
cpp-ethereum/evmjit/libevmjit/Utils.h:15:23: note:
expanded from macro 'clog' #define clog(CHANNEL) std::ostream(nullptr)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:111:33: note:
template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_ostream;
^
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
3fe31f0b80
Create memory helper functions on demand
10 years ago
Paweł Bylica
f70b7f5fd2
Use code (and code size) as constants
10 years ago
Paweł Bylica
96c89cbedc
Move mul512 function to LLVM
10 years ago
Paweł Bylica
d58f35343b
Move mul function to LLVM
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
625095473a
Remove dead jump table block
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
ae7919722a
Workaround for linker removing JIT callback functions
10 years ago
Paweł Bylica
f281e5ea26
Workaround for linker removing JIT callback functions
10 years ago
Paweł Bylica
3505e832ee
Some tweaks in gas counting
10 years ago
Paweł Bylica
73bf7087e7
Do not check memory requirements when size is 0
10 years ago
Paweł Bylica
3cbe1186cc
Pass gas counter to env_call as int64*
10 years ago
Paweł Bylica
494e96a89c
Pass gas counter to env_create as int64*
10 years ago
Paweł Bylica
407cae129f
Count gas using int64
10 years ago
Paweł Bylica
c633e62102
Gas counting changes: allow memory words counter not greater than gas max (int64 max)
10 years ago
Paweł Bylica
5610288626
Improve allocas order and namings
10 years ago
Paweł Bylica
27ca018c35
Add first instruction index to BasicBlock
10 years ago
Paweł Bylica
e8e9490b56
Disable RTTI for evmjit library
10 years ago
Paweł Bylica
bdba3104d6
Improve versioning
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