Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Replaced solAssert in Jumpdest optimization | Isaac van Bakel | 2017-11-26 | 1 | -3/+1 |
| | | | | | | This is the only use of solAssert in libevmasm, and the only dependency on libsolidity. There is no justification for why the illegal state is checked here. | ||||
* | Merge pull request #3077 from ethereum/optimze_pops | chriseth | 2017-10-17 | 2 | -2/+12 |
|\ | | | | | Assume peephole optimizer was successful if number of pops increased. | ||||
| * | Throw on too many peephole optimizer iterations. | chriseth | 2017-10-17 | 1 | -1/+4 |
| | | |||||
| * | Assume peephole optimizer was successful if number of pops increased. | chriseth | 2017-10-14 | 2 | -3/+10 |
| | | |||||
* | | Allow ``gas`` in view functions. | chriseth | 2017-10-16 | 1 | -1/+1 |
|/ | |||||
* | Remove duplicate EVMSchedule | Alex Beregszaszi | 2017-10-03 | 1 | -62/+0 |
| | |||||
* | Use isDup/SwapInstruction helper | Alex Beregszaszi | 2017-10-03 | 2 | -5/+3 |
| | |||||
* | Add helpers for isPush/isDup/isSwap | Alex Beregszaszi | 2017-10-02 | 1 | -0/+18 |
| | |||||
* | CMake: Cleanup include paths | Paweł Bylica | 2017-09-27 | 1 | -1/+1 |
| | |||||
* | Ensure parameter names match between headers and implementation | Alex Beregszaszi | 2017-09-20 | 2 | -3/+3 |
| | |||||
* | Merge pull request #2922 from ethereum/asm-bytes-required | chriseth | 2017-09-18 | 1 | -3/+3 |
|\ | | | | | Properly calculate bytesRequired for subs | ||||
| * | Properly calculate bytesRequired for subs | Alex Beregszaszi | 2017-09-18 | 1 | -3/+3 |
| | | |||||
* | | Add useful messages to exceptions in the assembler | Alex Beregszaszi | 2017-09-18 | 1 | -3/+3 |
|/ | |||||
* | Named assembly labels. | chriseth | 2017-09-16 | 2 | -0/+14 |
| | |||||
* | Merge pull request #2848 from ethereum/checkViewPure | chriseth | 2017-09-14 | 2 | -0/+55 |
|\ | | | | | Enforce view and pure. | ||||
| * | Rename to invalidInPureFunctions | chriseth | 2017-09-13 | 2 | -2/+2 |
| | | |||||
| * | Rename and add anonymous namespace. | chriseth | 2017-09-06 | 2 | -2/+2 |
| | | |||||
| * | Analyze assembly. | chriseth | 2017-09-06 | 1 | -0/+1 |
| | | |||||
| * | Add view/pure information about instructions. | chriseth | 2017-09-06 | 2 | -0/+54 |
| | | |||||
* | | Introduce assemblyString | Alex Beregszaszi | 2017-09-11 | 2 | -0/+10 |
| | | |||||
* | | Do not return the stream in asssemblyStream | Alex Beregszaszi | 2017-09-11 | 2 | -4/+2 |
| | | |||||
* | | Split out the JSON functionality from assembly.stream() | Alex Beregszaszi | 2017-09-11 | 2 | -23/+13 |
| | | |||||
* | | Mark functions static in libevmasm | Alex Beregszaszi | 2017-09-11 | 2 | -3/+4 |
|/ | |||||
* | Merge pull request #2843 from ethereum/anonymous-cleanup | chriseth | 2017-08-29 | 1 | -0/+5 |
|\ | | | | | Move all file specific globals to anonymous namespace | ||||
| * | Move all file specific globals to anonymous namespace | Alex Beregszaszi | 2017-08-29 | 1 | -0/+5 |
| | | |||||
* | | Reconcile EVM 1.5 instruction numbers with working draft EIP615 | gcolvin | 2017-08-29 | 1 | -9/+11 |
|/ | |||||
* | Cleanup of vector_ref.h | chriseth | 2017-08-26 | 1 | -1/+1 |
| | |||||
* | Cleanup of FixedHash.h | chriseth | 2017-08-25 | 1 | -1/+4 |
| | |||||
* | Cleanup of Common.h | chriseth | 2017-08-25 | 2 | -3/+8 |
| | |||||
* | Introduce JumpdestRemover optimisation step | Alex Beregszaszi | 2017-08-25 | 4 | -10/+146 |
| | |||||
* | Merge pull request #2757 from ethereum/cmake | Alex Beregszaszi | 2017-08-23 | 1 | -13/+4 |
|\ | | | | | Static linking | ||||
| * | CMake: Cleanup "local" include path | Paweł Bylica | 2017-08-23 | 1 | -1/+0 |
| | | |||||
| * | CMake: Simplify libevmasm config | Paweł Bylica | 2017-08-18 | 1 | -11/+5 |
| | | |||||
| * | CMake: Build static libs by default | Paweł Bylica | 2017-08-18 | 1 | -2/+0 |
| | | |||||
* | | Merge pull request #2656 from ethereum/performance1 | chriseth | 2017-08-23 | 1 | -5/+2 |
|\ \ | | | | | | | Avoid some Json copy operations. | ||||
| * | | Avoid some Json copy operations. | chriseth | 2017-08-21 | 1 | -5/+2 |
| |/ | |||||
* | | Some smaller issues found by Covertiy Scan | Alex Beregszaszi | 2017-08-22 | 2 | -1/+2 |
| | | |||||
* | | Switch stream properties back after temporary modification | Alex Beregszaszi | 2017-08-22 | 1 | -6/+6 |
| | | |||||
* | | Mark a lot of functions static (where possible) | Alex Beregszaszi | 2017-08-22 | 2 | -4/+4 |
| | | |||||
* | | Mark appropriate constructors explicit | Alex Beregszaszi | 2017-08-22 | 3 | -3/+3 |
| | | |||||
* | | Mark a lot of functions const (where possible) | Alex Beregszaszi | 2017-08-22 | 2 | -16/+16 |
|/ | |||||
* | Introduce fine-grained optimiser settings in libevmasm | Alex Beregszaszi | 2017-07-27 | 2 | -17/+60 |
| | |||||
* | Refactor exceptions and provide comment function. | chriseth | 2017-07-13 | 2 | -10/+11 |
| | |||||
* | MLOAD has side-effects, treat it like that in the optimiser | Alex Beregszaszi | 2017-07-01 | 1 | -1/+1 |
| | |||||
* | Fix negative stack size checks. | chriseth | 2017-06-28 | 1 | -0/+1 |
| | |||||
* | Use assertThrow where possible | Alex Beregszaszi | 2017-06-22 | 1 | -8/+5 |
| | |||||
* | Replace obsolete assembly code in LLL | Alex Beregszaszi | 2017-06-22 | 2 | -12/+0 |
| | |||||
* | Remove debugbreak. | chriseth | 2017-06-21 | 1 | -3/+3 |
| | |||||
* | Merge pull request #2397 from ethereum/doublepush | chriseth | 2017-06-15 | 3 | -7/+29 |
|\ | | | | | Peephole optimizer for double push. | ||||
| * | Peephole optimizer for double push. | chriseth | 2017-06-15 | 3 | -7/+29 |
| | | |||||
* | | Merge pull request #2398 from ethereum/assembly-cleanup | chriseth | 2017-06-15 | 2 | -12/+8 |
|\ \ | | | | | | | Remove obsolete features from libevmasm | ||||
| * | | Move subroutine helpers from CompilerContext to Assembly | Alex Beregszaszi | 2017-06-15 | 1 | -0/+7 |
| | | | |||||
| * | | Remove single use Assembly::popTo | Alex Beregszaszi | 2017-06-15 | 1 | -2/+0 |
| | | | |||||
| * | | Remove obsolete Assembly::out | Alex Beregszaszi | 2017-06-15 | 2 | -8/+0 |
| | | | |||||
| * | | Remove obsolete errorTag() | Alex Beregszaszi | 2017-06-15 | 2 | -2/+1 |
| | | | |||||
* | | | Merge branch 'develop' into asm-aux | chriseth | 2017-06-15 | 4 | -5/+13 |
|\| | | |||||
| * | | add new opcode instructions to the parser | Dimitry | 2017-06-15 | 4 | -5/+13 |
| |/ | | | | | | | STATICCALL 0xfa 6 inputs (gas address mem1 mem2 mem3 mem4) | ||||
* | | Print auxiliary data in the assembly | Alex Beregszaszi | 2017-06-15 | 1 | -0/+6 |
| | | |||||
* | | Print assembly even if there's no data section | Alex Beregszaszi | 2017-06-15 | 1 | -1/+3 |
|/ | |||||
* | Introduce CREATE2 in the assembler | Alex Beregszaszi | 2017-06-14 | 4 | -1/+7 |
| | |||||
* | Mention RETURNDATACOPY in GasMeter and SemanticInformation | Yoichi Hirai | 2017-06-13 | 2 | -0/+4 |
| | |||||
* | libevmasm: add RETURNDATACOPY and RETURNDATASIZE | Yoichi Hirai | 2017-06-13 | 2 | -0/+6 |
| | |||||
* | Initial EVM1.5 assembly implementation. | chriseth | 2017-06-08 | 1 | -0/+9 |
| | |||||
* | Rename the SHA3 assembly instruction to KECCAK256 | Alex Beregszaszi | 2017-05-30 | 8 | -26/+26 |
| | |||||
* | Add simplification rule for SDIV(0,X) and SDIV(X,0) | Alex Beregszaszi | 2017-05-20 | 1 | -0/+2 |
| | |||||
* | Cleanup simplification rules | Alex Beregszaszi | 2017-05-20 | 1 | -8/+15 |
| | |||||
* | Add parentheses for readability. | chriseth | 2017-05-02 | 1 | -1/+1 |
| | |||||
* | Fix number representation bug. | chriseth | 2017-05-02 | 1 | -2/+7 |
| | |||||
* | Do not use the member in checkRepresentation | Alex Beregszaszi | 2017-04-27 | 2 | -4/+4 |
| | |||||
* | Use OptimizerException to report error | chriseth | 2017-04-27 | 1 | -2/+6 |
| | |||||
* | Add recomputation check for number representation. | chriseth | 2017-04-27 | 2 | -1/+56 |
| | |||||
* | libevmasm: fix sloadGas in another file | Yoichi Hirai | 2017-04-25 | 1 | -1/+1 |
| | |||||
* | libevmasm: add a break | Yoichi Hirai | 2017-04-25 | 1 | -0/+1 |
| | |||||
* | libevmasm: reflect EIP 160 gas schedule change | Yoichi Hirai | 2017-04-25 | 1 | -1/+1 |
| | |||||
* | libevmasm: EIP150.c gas change | Yoichi Hirai | 2017-04-25 | 1 | -0/+1 |
| | |||||
* | libevmasm: EIP150.a changes on SLOAD, CALL, CALLCODE, DELEGATECALL and SUICIDE | Yoichi Hirai | 2017-04-25 | 4 | -3/+6 |
| | |||||
* | libevmadm: EIP150.a changes on EXTCODE, EXTCODESIZE and BALANCE | Yoichi Hirai | 2017-04-25 | 4 | -3/+9 |
| | |||||
* | Initialize local variables. | chriseth | 2017-04-12 | 1 | -2/+2 |
| | |||||
* | Implement missing assembly output functions and do not use PushString for ↵ | chriseth | 2017-04-12 | 2 | -6/+14 |
| | | | | assembly. | ||||
* | Add upper bound for computing constants. | chriseth | 2017-03-03 | 2 | -1/+5 |
| | |||||
* | Print source location before items. | chriseth | 2017-02-24 | 1 | -1/+1 |
| | |||||
* | Add REVERT to libevmasm | Alex Beregszaszi | 2017-02-11 | 5 | -1/+7 |
| | |||||
* | Rename SUICIDE opcode to SELFDESTRUCT in libevmasm | Alex Beregszaszi | 2017-02-07 | 6 | -8/+8 |
| | |||||
* | More verbose log of when using invalid instructions | Alex Beregszaszi | 2017-02-02 | 1 | -4/+4 |
| | |||||
* | Fix optimizer with regards to INVALID instruction. | chriseth | 2017-01-26 | 2 | -0/+2 |
| | |||||
* | Change code for INVALID opcode to 0xfe. | chriseth | 2017-01-26 | 2 | -4/+4 |
| | |||||
* | Change translation of implicit throws (issue #1589). | Valentin Wüstholz | 2017-01-26 | 2 | -0/+4 |
| | | | | | | | This adds a new invalid instruction that is used for encoding implicit throws that are emitted by the compiler. This makes it possible to distinguish such runtime errors from user-provided, explicit throws. | ||||
* | Create functional assembly output, if possible. | chriseth | 2017-01-24 | 4 | -17/+94 |
| | |||||
* | Fix error tag usage in lll. | chriseth | 2017-01-23 | 1 | -1/+1 |
| | |||||
* | Merge pull request #1584 from ethereum/tier | chriseth | 2017-01-19 | 3 | -149/+149 |
|\ | | | | | libevmasm: remove duplicate `Tier` from `Tier::xTier`s | ||||
| * | libevmasm: remove duplicate `Tier` from `Tier::xTier`s | Yoichi Hirai | 2017-01-19 | 3 | -149/+149 |
| | | | | | | | | Synchronize with cpp-ethereum | ||||
* | | Provide fallback for linking. | chriseth | 2017-01-19 | 2 | -6/+29 |
|/ | |||||
* | Make enum Tier into an enum class | Yoichi Hirai | 2017-01-13 | 3 | -141/+141 |
| | |||||
* | Minor changes from review. | chriseth | 2017-01-13 | 2 | -2/+1 |
| | |||||
* | Windows build fix. | chriseth | 2017-01-13 | 1 | -0/+2 |
| | |||||
* | Fix match groups. | chriseth | 2017-01-13 | 1 | -0/+1 |
| | |||||
* | Fix debug output. | chriseth | 2017-01-13 | 1 | -2/+8 |
| | |||||
* | Optimize constant optimization. | chriseth | 2017-01-13 | 2 | -37/+58 |
| | |||||
* | Optimise simplification rules (sort into bins). | chriseth | 2017-01-13 | 4 | -394/+514 |
| | |||||
* | Optimize pattern matcher. | chriseth | 2017-01-13 | 2 | -16/+22 |
| | |||||
* | Optimise AssemblyItem::m_data. | chriseth | 2017-01-13 | 4 | -21/+58 |
| | |||||
* | Rename programSize to bytecodeSize. | chriseth | 2017-01-03 | 1 | -1/+1 |
| | |||||
* | Assembly output for Assembly object. | chriseth | 2017-01-03 | 3 | -51/+105 |
| | |||||
* | libevmasm: OpPop() optimization keeps the source location | Yoichi Hirai | 2016-12-30 | 1 | -1/+1 |
| | | | | fixes #1521 | ||||
* | Fix tests. | chriseth | 2016-12-01 | 1 | -2/+3 |
| | |||||
* | Add swarm hash to the end of the bytecode. | chriseth | 2016-12-01 | 2 | -4/+13 |
| | |||||
* | libevmasm: remove an unused variable `total` | Yoichi Hirai | 2016-12-01 | 1 | -3/+2 |
| | |||||
* | Add more optimization rules | Yoichi Hirai | 2016-11-30 | 1 | -0/+6 |
| | |||||
* | Replace XOR with self with 0 | Alex Beregszaszi | 2016-11-30 | 1 | -0/+1 |
| | |||||
* | Replace XOR/ISZERO with EQ | Alex Beregszaszi | 2016-11-30 | 1 | -0/+4 |
| | |||||
* | Add optimiser rule for SUB with 0 | Alex Beregszaszi | 2016-11-30 | 1 | -1/+2 |
| | |||||
* | Integrate AddPop. | chriseth | 2016-11-25 | 2 | -16/+13 |
| | |||||
* | Templatize. | chriseth | 2016-11-25 | 1 | -37/+75 |
| | |||||
* | Peephole optimizer for unreacheable code. | chriseth | 2016-11-25 | 1 | -37/+73 |
| | |||||
* | libevmasm: generalize ADDPOP optimization into ADDMODPOP etc | Yoichi Hirai | 2016-11-25 | 1 | -5/+6 |
| | |||||
* | libevmasm: Add another peephole optimization | Yoichi Hirai | 2016-11-25 | 2 | -3/+28 |
| | |||||
* | Fix licensing headers | VoR0220 | 2016-11-23 | 31 | -124/+124 |
| | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> | ||||
* | Optimizer: Clear state for JUMPDESTs. | chriseth | 2016-11-22 | 1 | -36/+25 |
| | |||||
* | Some more assertions and style changes. | chriseth | 2016-11-16 | 1 | -1/+1 |
| | |||||
* | Change encoding to address-funid and add "function" as ABI type. | chriseth | 2016-11-16 | 1 | -0/+1 |
| | |||||
* | Fix setting the tag. | chriseth | 2016-11-16 | 1 | -1/+1 |
| | |||||
* | fixup! Simple peephole optimizer that is activated even if not requested. | chriseth | 2016-11-16 | 1 | -0/+2 |
| | |||||
* | Simple peephole optimizer that is activated even if not requested. | chriseth | 2016-11-16 | 4 | -12/+223 |
| | |||||
* | Converted sub assembly to smart pointer. | chriseth | 2016-11-16 | 3 | -37/+62 |
| | |||||
* | Stored combined creation and runtime tags. | chriseth | 2016-11-16 | 7 | -52/+145 |
| | | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought. | ||||
* | Implement uninitialized storage functions. | chriseth | 2016-11-16 | 1 | -0/+1 |
| | |||||
* | Keep old code. | chriseth | 2016-11-15 | 2 | -21/+30 |
| | |||||
* | Report infinite gas for calls. | chriseth | 2016-11-14 | 1 | -15/+19 |
| | |||||
* | Merge pull request #1333 from ethereum/compare_location_files | chriseth | 2016-11-09 | 1 | -5/+10 |
|\ | | | | | Compare source files in source locations | ||||
| * | libevmasm: fix comparison of SourceLocations | Yoichi Hirai | 2016-11-08 | 1 | -5/+10 |
| | | |||||
* | | Merge pull request #1252 from ethereum/jsoncpp-from-source | chriseth | 2016-11-08 | 1 | -1/+2 |
|\ \ | |/ |/| | Build jsoncpp from source using jsoncpp.cmake script | ||||
| * | Build jsoncpp from source using jsoncpp.cmake script | Paweł Bylica | 2016-10-21 | 1 | -1/+2 |
| | | |||||
* | | Merge pull request #1270 from ethereum/optimise-eq0 | chriseth | 2016-10-24 | 1 | -0/+1 |
|\ \ | | | | | | | Optimise the PUSH 0, EQ case as ISZERO | ||||
| * | | Optimiser the PUSH 0, EQ case as ISZERO | Alex Beregszaszi | 2016-10-23 | 1 | -0/+1 |
| |/ | |||||
* / | Optimizer: generate code starting with empty state | chriseth | 2016-10-22 | 1 | -2/+4 |
|/ | |||||
* | Rename dev::sha3 to dev::keccak256 | Alex Beregszaszi | 2016-10-06 | 3 | -4/+4 |
| | |||||
* | Explicitly specify length of push data for assembly output. | chriseth | 2016-08-18 | 1 | -1/+1 |
| | |||||
* | Rename libevmasm. | chriseth | 2016-08-10 | 1 | -1/+1 |
| | |||||
* | Merge pull request #834 from chriseth/devcorecleanup | chriseth | 2016-08-08 | 2 | -5/+1 |
|\ | | | | | Some cleanup regarding libdevcore. Also rename to avoid conflicts. | ||||
| * | Correct library usage. | chriseth | 2016-08-08 | 1 | -1/+1 |
| | | |||||
| * | Some cleanup regarding libdevcore. Also rename to avoid conflicts. | chriseth | 2016-08-06 | 2 | -5/+1 |
| | | |||||
* | | Do not install headers. | chriseth | 2016-08-05 | 1 | -2/+0 |
|/ | |||||
* | Further fixes to the optimizer. | chriseth | 2016-08-02 | 2 | -4/+5 |
| | |||||
* | Reset knowledge in optimizer for path joins. | chriseth | 2016-08-01 | 3 | -3/+12 |
| | |||||
* | Make the Solidity repository standalone. | Bob Summerwill | 2016-08-01 | 1 | -0/+62 |
| | | | | | | | | | | | | | | | | | | | | This commit is the culmination of several months of work to decouple Solidity from the webthree-umbrella so that it can be developed in parallel with cpp-ethereum (the Ethereum C++ runtime) and so that even for the Solidity unit-tests there is no hard-dependency onto the C++ runtime. The Tests-over-IPC refactoring was a major step in the same process which was already committed. This commit contains the following changes: - A subset of the CMake functionality in webthree-helpers was extracted and tailored for Solidity into ./cmake. Further cleanup is certainly possible. - A subset of the libdevcore functionality in libweb3core was extracted and tailored for Solidity into ./libdevcore. Further cleanup is certainly possible - The gas price constants in EVMSchedule were orphaned into libevmasm. - Some other refactorings and cleanups were made to sever unnecessary EVM dependencies in the Solidity unit-tests. - TravisCI and Appveyor support was added, covering builds and running of the unit-tests (Linux and macOS only for now) - A bug-fix was made to get the Tests-over-IPC running on macOS. - There are still reliability issues in the unit-tests, which need immediate attention. The Travis build has been flipped to run the unit-tests 5 times, to try to flush these out. - The Emscripten automation which was previously in webthree-umbrella was merged into the TravisCI automation here. - The development ZIP deployment step has been commented out, but we will want to read that ONLY for release branch. Further iteration on these changes will definitely be needed, but I feel these have got to sufficient maturity than holding them back further isn't winning us anything. It is go time :-) | ||||
* | Fix warning showing up in openSUSE build. | Bob Summerwill | 2016-06-08 | 1 | -1/+1 |
| | |||||
* | Correctly use not/bnot/iszero. | chriseth | 2016-05-09 | 1 | -2/+2 |
| | | | | | A long time ago, some opcodes were renamed. Now we should only have not (bitwise negation) and iszero (logical negation). | ||||
* | Windows fix. | chriseth | 2016-04-21 | 1 | -2/+13 |
| | |||||
* | Source location for inline assembly. | chriseth | 2016-04-20 | 1 | -18/+5 |
| | |||||
* | Merge pull request #496 from chriseth/removelog | Bob Summerwill | 2016-04-12 | 2 | -10/+0 |
|\ | | | | | Remove log.h from solidity. | ||||
| * | Remove log.h from solidity. | chriseth | 2016-04-12 | 2 | -10/+0 |
| | | |||||
* | | Make solidity independent from ethcore. | chriseth | 2016-04-07 | 7 | -121/+83 |
|/ | |||||
* | reduce unnecessary solidity:: namespace | Dimitry | 2016-04-04 | 4 | -8/+8 |
| | |||||
* | return instructionInfo style | Dimitry | 2016-04-04 | 9 | -14/+14 |
| | |||||
* | enable solidity test | Dimitry | 2016-04-04 | 2 | -6/+6 |
| | |||||
* | rename namespace for instruction.h/cpp in libevmasm | Dimitry | 2016-04-02 | 13 | -32/+33 |
| | |||||
* | move libevmcore to solidity | Dimitry | 2016-04-02 | 6 | -4/+626 |
| | |||||
* | includes | Dimitry | 2016-03-22 | 3 | -4/+5 |
| | |||||
* | add liblll lllc libevmasm | Dimitry | 2016-03-22 | 2 | -4/+4 |
| | |||||
* | move libevmasm | Dimitry | 2016-03-21 | 29 | -0/+5102 |