Paweł Bylica
681ba24d33
Free memory allocated for dynamic stack
10 years ago
Gav Wood
e185d9a117
Add EVMJIT.
10 years ago
Paweł Bylica
cd1dea3594
Global/dynamic stack implementation with realloc
10 years ago
Paweł Bylica
1e81754a33
Stack improvements: all helper functions are generated on demand, no global alloca for arguments
10 years ago
Paweł Bylica
fe0517cf6d
Workaround for printing extractvalue instruction in DOT language
10 years ago
Paweł Bylica
1ea5eb4105
Destroy LLVM ManagedStatics
10 years ago
Paweł Bylica
7512299398
Use llvm/CommandLine library for JIT options
10 years ago
Paweł Bylica
5e0e0097f0
Get endianess from LLVM
10 years ago
Paweł Bylica
1d5d10e020
Testing some LLVM optimization passes
10 years ago
Paweł Bylica
e5519d00d8
Optimizer: separate LLVM IR optimization passes from compiler
10 years ago
Gav Wood
b9e4bbbc14
Compile warning fix.
10 years ago
Paweł Bylica
e15859ed27
Windows fixes
10 years ago
Paweł Bylica
f2f998f6fc
Build fix
10 years ago
Paweł Bylica
833643ed77
Safe assert
10 years ago
Paweł Bylica
c95c1c81f4
Cleanup ExecutionEngine creation
10 years ago
Paweł Bylica
89db6f0696
Fix wrong prerelease version component parsing
10 years ago
Paweł Bylica
3aa2f066dd
Workaround for buggy LLVM shl operator for i512
10 years ago
Paweł Bylica
8b8d9d1df0
Helper function name fix
10 years ago
Paweł Bylica
5f4bda5cef
Correct usage of LLVM builtin setjmp/longjmp. External setjmp was eliminated, hopefully Windows will be happier now.
10 years ago
Paweł Bylica
7b4892c916
Dynamic stack modification: do not use longjmp in external functions
10 years ago
Lu Guanqun
77a15f749f
change typedef to using according to preferred coding style
10 years ago
Paweł Bylica
3365f3f438
#include cleanups
10 years ago
Paweł Bylica
33205fb9c9
Place warning pragmas for LLVM includes in separated files
10 years ago
Paweł Bylica
cbc1c99beb
Add `unreachable` instruction to fake module generated by Cache
10 years ago
Lu Guanqun
c0358e1f5f
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
ddf4724ce1
Fix cache bug: code was always compiled
10 years ago
Paweł Bylica
f203843114
Stats for execution states times
10 years ago
Paweł Bylica
4c58e6ffa5
Create memory helper functions on demand
10 years ago
Paweł Bylica
99b7607ae2
Use code (and code size) as constants
10 years ago
Paweł Bylica
553c47ebcf
Move mul512 function to LLVM
10 years ago
Paweł Bylica
b22f672f0b
Move mul function to LLVM
10 years ago
Paweł Bylica
82972e47df
Start of stats collector
10 years ago
Paweł Bylica
b448dba6b9
Remove dead jump table block
10 years ago
Paweł Bylica
62587cfd73
Workaround for linker removing JIT callback functions
10 years ago
Paweł Bylica
7cbb44faa1
Some tweaks in gas counting
10 years ago
Paweł Bylica
4c8ae3e707
Do not check memory requirements when size is 0
10 years ago
Paweł Bylica
ee036d3c97
Pass gas counter to env_call as int64*
10 years ago
Paweł Bylica
ce86427871
Pass gas counter to env_create as int64*
10 years ago
Paweł Bylica
b474924783
Count gas using int64
10 years ago
Paweł Bylica
3290856061
Gas counting changes: allow memory words counter not greater than gas max (int64 max)
10 years ago
Paweł Bylica
019aa6dd63
Improve allocas order and namings
10 years ago
Paweł Bylica
01dffe28f3
Add first instruction index to BasicBlock
10 years ago
Paweł Bylica
b999cc28c4
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
c49f78ca4f
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
932ce6650c
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
de649202a0
Fallback to interpreter VM in case of JIT requirements unmet
10 years ago
Paweł Bylica
d7f521298b
Remove Windows testing code
10 years ago
Paweł Bylica
6aec918347
Get some information from Git about build version
10 years ago
Paweł Bylica
85658f8326
Fix memory index having type i256
10 years ago
Paweł Bylica
96980ef0dd
uint128 implementation for Windows and fixes arithmetic functions
10 years ago