Paweł Bylica
93f6e0abe7
Link consecutive basic blocks after all blocks are compiled.
10 years ago
Paweł Bylica
cf681e379c
Update min local stack size correctly.
10 years ago
Paweł Bylica
c8846eb01a
Do not modify pops counter of LocalStack during finalization.
That fixes LocalStack::size() returning incorrect values after LocalStack::finalize() has been called.
10 years ago
Paweł Bylica
2565fe1fa7
Fix EVM JIT stack limit checking.
Tests inlcuded.
10 years ago
Paweł Bylica
215ea7dde5
Remove vector of basic blocks from Compiler.
10 years ago
Paweł Bylica
b44d4846f5
Use llvm::SwitchInstr as a jump dest map.
10 years ago
Paweł Bylica
4a68a237b0
Rename private members of LocalStack.
10 years ago
Paweł Bylica
f76d634769
Change the way Jump Table is created and filled.
10 years ago
Paweł Bylica
7d1e35076f
Fix local stack max size calculation.
10 years ago
Paweł Bylica
1e926fe6bc
Move fields from BasicBlock to LocalStack. Remove dump() functions.
10 years ago
Paweł Bylica
fcacf6e3a2
Remove code doing stack optimization with PHI nodes.
10 years ago
Paweł Bylica
b604dfefe6
Reimplementation of local stack handling during basic block compilation.
This change removed the intermediate stage when PHI nodes are inserted in place of items fetched from global stack. PHi stage requires information about other basic block therefore must be postponed to the point when all basic blocks has been compiled. In the same time this optimization has not been very effective.
10 years ago
Paweł Bylica
c80ded8f97
Move LocalStack out of BasicBlock.
10 years ago
Paweł Bylica
dda4ccff3e
Control stack size limit
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
Paweł Bylica
06a17b1040
Better style
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
Paweł Bylica
7d7e6ec7f5
Using logs utils from LLVM
10 years ago
Gav Wood
e185d9a117
Add EVMJIT.
10 years ago
Paweł Bylica
fe0517cf6d
Workaround for printing extractvalue instruction in DOT language
10 years ago
Paweł Bylica
3365f3f438
#include cleanups
10 years ago
Paweł Bylica
b474924783
Count gas using int64
10 years ago
Paweł Bylica
01dffe28f3
Add first instruction index to BasicBlock
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
5096dbfc22
Allways generate stack_get() call to detect stack underflow cases
10 years ago
Paweł Bylica
c9ddc4468a
Temporary remove evmjit subtree
10 years ago
Paweł Bylica
106a7a8472
Allways generate stack_get() call to detect stack underflow cases
10 years ago
Paweł Bylica
272a0bd6fc
EVMJIT: Better object cache and other improvements
10 years ago