Paweł Bylica
5046dd4bb0
EVM JIT C++ interface in one header.
10 years ago
Paweł Bylica
b8a66c7f3e
JIT implementation cleanups.
10 years ago
Paweł Bylica
bcc0cfd055
Code migration.
10 years ago
Paweł Bylica
8e4881bcd0
Code migration.
10 years ago
Paweł Bylica
75e4e34647
Better style of ExecutionEngine initialization. Some eth::jit -> evmjit namespace transfers.
10 years ago
Paweł Bylica
d43991723f
Fix cache mode handling.
10 years ago
Paweł Bylica
3cb8f3a4b2
Merge ExecutionContext and Runtime classes
10 years ago
Paweł Bylica
b96d6ff088
Extract execution context from ExecutionEngine::run.
10 years ago
Paweł Bylica
9b66cea1c8
Enable function inlining optimization.
10 years ago
Paweł Bylica
002d9a9d69
Handle more edge cases in DIV, etc.
10 years ago
Paweł Bylica
f19c7c4981
Add protection against hardware division by 0.
10 years ago
Paweł Bylica
7dd279e64e
Remove unused code
10 years ago
Paweł Bylica
910732c2cb
Remove div by 0 check in udivrem implementation.
10 years ago
Paweł Bylica
3b8e2996a5
Lower ADDMOD & MULMOD (limited) to a function call in the LLVM pass after optimization.
10 years ago
Paweł Bylica
f041e68cfe
Add edge DIV/MOD cases. Migrate to new udivrem function.
10 years ago
Paweł Bylica
7de220228b
Lower MOD, SDIV & SMOD to a function call in the LLVM pass after optimization.
10 years ago
Paweł Bylica
03ea86c855
Eliminate dead instructions replaced in AP arithmetic lowering.
10 years ago
Paweł Bylica
483403cc91
Lower DIV to a function call in the LLVM pass after optimization.
10 years ago
Paweł Bylica
855d2f677c
VM cleanups
10 years ago
Paweł Bylica
6cf5976515
Remove gas counter from VM interface (VMFace)
10 years ago
Paweł Bylica
e659d3e761
Copy gas counter to local function stack (alloca)
10 years ago
Paweł Bylica
08d94e0f52
Always exit through exit blocks (Stop, Abort, etc).
Fixes ethereum/evmjit#6 .
10 years ago
Paweł Bylica
77f9d13977
Unpack runtime data at front. Not used one are removed by DCE pass.
10 years ago
Paweł Bylica
1e6659d1a9
Allow selecting VM kind manually
10 years ago
Paweł Bylica
898682d04d
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
73cc4e5b97
Return divrem results using vector <2 x i256>
10 years ago
chriseth
2111cd4894
Move assembly related files to libevmasm and Params.h/.cpp to libevmcore.
10 years ago
Paweł Bylica
78c97ea0af
Implementation of MUL workaround in "LLVM pass" way.
10 years ago
Paweł Bylica
008ca8d4f9
Move calldataload procedure to LLVM IR
10 years ago
Paweł Bylica
e968c65372
Remove unused stuff
10 years ago
Paweł Bylica
9aecd10a66
Revert not needed LLVM workarounds
10 years ago
chriseth
229b2486a4
Statically compile libevmjit-cpp.
10 years ago
Paweł Bylica
f86009c9e8
Add support for building with llvm-3.7-deb Debian package
10 years ago
Paweł Bylica
56c3d18582
Remove some LLVM 3.5 bugs workarounds
10 years ago
Paweł Bylica
777fcbd12e
Port to LLVM 3.7
10 years ago
Paweł Bylica
7226fe23aa
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
4cbc52afcf
Fix stack limit check
10 years ago
Paweł Bylica
dda4ccff3e
Control stack size limit
10 years ago
Paweł Bylica
d1f9f0290f
Add option to preload cache
10 years ago
Paweł Bylica
bd1e66dd11
Code cleanup
10 years ago
Paweł Bylica
8926a979ed
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
a86fa46e89
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
cc1be11d6c
Constant folding in div-based operators disabled
There is a bug in LLVM arbitrary precision division algorithm.
10 years ago
Paweł Bylica
609a811753
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
Gav Wood
1619d230c3
Extensive pathway for reporting transaction execution results.
10 years ago
Paweł Bylica
4b37ed9e16
Additional cache options: readonly, writeonly and clear.
10 years ago
Paweł Bylica
06a17b1040
Better style
10 years ago
Paweł Bylica
a64b4d9f71
Workaround for buggy LLVM ctlz used in counting EXP cost
10 years ago
Paweł Bylica
52ca0bac51
Do not update the stack after it was freed by RETURN instruction
10 years ago
Paweł Bylica
7476979d0b
Style corrections, optimized but notworking mul256 implementation removed
10 years ago