Paweł Bylica
3202abb91e
Cleanup unused code.
10 years ago
Paweł Bylica
df78960414
Remove LLVM cmake files workaround.
10 years ago
Paweł Bylica
38ffad6530
Adjustments for llvm::IRBuilder API changes.
10 years ago
Paweł Bylica
81ad029af9
MSVC fixes.
10 years ago
Paweł Bylica
4c42a5df44
Remove evmcc tool.
10 years ago
Paweł Bylica
b56cef3b1e
Better eth <-> jit integer conversions.
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
a0ca973274
Enable function inlining optimization.
10 years ago
Paweł Bylica
25b080ee87
Handle more edge cases in DIV, etc.
10 years ago
Paweł Bylica
edfb49e3ef
Add protection against hardware division by 0.
10 years ago
Paweł Bylica
4992aa21c0
Remove unused code
10 years ago
Paweł Bylica
499ab22637
Remove div by 0 check in udivrem implementation.
10 years ago
Paweł Bylica
d8da43e939
Lower ADDMOD & MULMOD (limited) to a function call in the LLVM pass after optimization.
10 years ago
Paweł Bylica
f1428f804a
Add edge DIV/MOD cases. Migrate to new udivrem function.
10 years ago
Paweł Bylica
2603d3afbe
Lower MOD, SDIV & SMOD to a function call in the LLVM pass after optimization.
10 years ago
Paweł Bylica
f7a4e27d46
Eliminate dead instructions replaced in AP arithmetic lowering.
10 years ago
Paweł Bylica
f72bfb461e
Lower DIV to a function call in the LLVM pass after optimization.
10 years ago
Paweł Bylica
624677eb42
Copy gas counter to local function stack (alloca)
10 years ago
Paweł Bylica
9496f645e2
Always exit through exit blocks (Stop, Abort, etc).
Fixes ethereum/evmjit#6 .
10 years ago
Paweł Bylica
854d088da9
Unpack runtime data at front. Not used one are removed by DCE pass.
10 years ago
Paweł Bylica
1b797cb381
Merge remote-tracking branch 'origin/pr/evmjit' into evmjit-develop
10 years ago
Paweł Bylica
9c97f20674
Allow selecting VM kind manually
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
d97217dcbc
Return divrem results using vector <2 x i256>
10 years ago
chriseth
c3fe9ad112
Move assembly related files to libevmasm and Params.h/.cpp to libevmcore.
10 years ago
Paweł Bylica
463025e15d
Implementation of MUL workaround in "LLVM pass" way.
10 years ago
Paweł Bylica
f1d8fbefbf
Move calldataload procedure to LLVM IR
10 years ago
Paweł Bylica
228db6bc07
Remove unused stuff
10 years ago
Paweł Bylica
f846adf915
Revert not needed LLVM workarounds
10 years ago
chriseth
d6f4eb1eef
Statically compile libevmjit-cpp.
10 years ago
Paweł Bylica
b4960f4f42
Add support for building with llvm-3.7-deb Debian package
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
a4d4b08d02
Fix stack limit check
10 years ago
Paweł Bylica
84fa7bc945
Control stack size limit
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
0ab3995297
Do not subbalance twice
VM does not need to subbalance a caller. Balance tranfer is taken care on higher level.
10 years ago
Paweł Bylica
95d3669d31
Constant folding in div-based operators disabled
There is a bug in LLVM arbitrary precision division algorithm.
10 years ago
Gav Wood
fc9b0ae384
Merge branch 'develop' of github.com:ethereum/cpp-ethereum into develop
Conflicts:
mix/MixClient.cpp
10 years ago
Paweł Bylica
17cc7420a7
Fixes and workarounds
- Fix data copy: padding memory was not zero'd.
- Fix inter-block stack optimization: incorrect phi node in first block.
- Workaround incorrect llvm::APInt::urem() implementation.
10 years ago