Commit Graph
851 Commits
Author SHA1 Message Date
chriseth 7496598b5a Merge pull request #8155 from ethereum/removeStackHeightChecks
Remove stack height checks.
2020-02-03 12:28:37 +01:00
cameel 4e7c1c7876 OptimiserSuite: Add two maps for converting between step names and abbreviations
- Abbreviations match those used in yulopti.
- I considered using boost::bimap but I think it would be an overkill. Two simple maps are good enough in a situation where data is constant and there isn't much of it.
- I could also use InvertibleMap from libsolutil but I don't even need any of its methods since my map is a constant. I also don't need the inverted map to store sets because my values are unique.
- The reverseMap() is generic enough to be moved to some global file with utilities but I don't sure if it's going to actually be useful to others in practice.
2020-02-03 12:22:47 +01:00
alex e4b18e85e6 Replaced SourceLocation::isEmpty() with isValid() and hasText().
The function SourceLocation::isEmpty() had somewhat dual role.
Sometimes it indicates that the SourceLocation is invalid.
Sometimes it means that there is no corresponding source text.

Hence the proposal is to replace it with two functions, isValid() and hasText().

I also removed Scanner::sourceAt(). (Do we have a rule of thumb to remove unused code?)

Since hasText() checks that start and end are valid indices for source, I adjusted a couple of tests to avoid empty source strings.
2020-02-03 08:04:21 +01:00
chriseth 2afcfec77b Merge pull request #8220 from ethereum/remove-var-name-cleaner-from-optimiser-suite-step-list
Remove var name cleaner from optimiser suite step list
2020-01-30 17:58:43 +01:00
cameel 2ee7e6042b OptimiserSuite: Remove VarNameCleaner from the list of available steps 2020-01-30 17:35:27 +01:00
chriseth ada0cef150 Merge pull request #8068 from ethereum/evmTypedDialect
[Yul] EVM typed dialect
2020-01-30 14:53:25 +01:00
cameel 642653ea04 Make yul::Parser::parse() return unique_ptr rather than shared_ptr
- unique_ptr is more flexible and generally recommended for factory methods. It gets automatically converted to shared_ptr if necessary. Returning shared_ptr, on the other hand, forces the caller to use shared_ptr because a conversion to unique_ptr is not possible.
2020-01-29 20:07:08 +01:00
chriseth 2bcdb24ebe Cause failing assertion for invalid u256 to bool conversion. 2020-01-29 19:01:28 +01:00
chriseth db33ff6408 Clean up built-in instructions. 2020-01-29 19:01:28 +01:00
chriseth d3b53ee394 Make bool type optional for bool literals. 2020-01-29 19:01:28 +01:00
chriseth a66782537a Use old yul dialect only in tests. 2020-01-29 19:01:28 +01:00
chriseth fbe5bb0cce Parse default dialect and omit when printing. 2020-01-29 17:25:25 +01:00
chriseth 90c98a3289 Introduce typed EVM dialect. 2020-01-29 17:25:25 +01:00
chriseth f0afb0aeff Remove stack height checks. 2020-01-28 15:26:17 +01:00
rodiazet f1004e712c [WASM] Add div, sdiv, mod, smod, exp, lt, sar, addmod, mulmod, signextend 2020-01-28 13:32:43 +01:00
chriseth 81569f7208 Remove Scope::Label. 2020-01-16 19:13:25 +01:00
chriseth 5fb8e76931 Merge pull request #8136 from imapp-pl/polyfill-mstore8
mstore8 polyfill
2020-01-15 17:02:40 +01:00
rodiazet 3760e90582 [WASM] mstore8 function implementation added. 2020-01-15 14:06:43 +01:00
chriseth fe35df4b78 Style. 2020-01-14 17:17:20 +01:00
chriseth 123ea0a250 Remove asm flavour. 2020-01-14 17:16:09 +01:00
Christian Parpart abb9f1eed7 CMake: Renaming devcore static library to solutil (to match source code paths) 2020-01-13 15:52:46 +01:00
Leonardo Alt a02308cfa5 Replace void cast by maybe_unused 2020-01-09 13:41:30 +01:00
chriseth b8488597da Combine value and loop depth. 2020-01-08 12:25:46 +01:00
chriseth b5bd4787af Merge pull request #7801 from ethereum/tuneRemat
Tune rematerializer
2020-01-08 10:41:32 +01:00
rodiazet b8c59c56e0 [WASM] Add keccak256, balance, extcodecopy, blockhash, coinbase, log's, call, callcode, delegatecall, staticcall 2020-01-08 10:08:36 +01:00
chriseth 40c0602b5c Do not rematerialize in loops. 2020-01-08 09:56:08 +01:00
chriseth 25d3f27c11 Tune Rematerializer 2020-01-08 09:56:08 +01:00
Christian Parpart 345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart 6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
chriseth aab8b9bc36 Fix redundant assignment removal in combination with break / continue. 2019-12-29 15:53:47 +01:00
chriseth 7db88cfedd Remove yul::Instruction. 2019-12-19 23:22:19 +01:00
Alex Beregszaszi 65e59ecd06 Rename EWasm/ewasm/eWasm to Ewasm 2019-12-19 11:36:08 +00:00
rodiazet d867f5339b [WASM] add i64.clz and i64.store8 to Wasm dialect and EWasm interpreter.
dsads
2019-12-18 19:51:27 +01:00
Alex Beregszaszi 7effc94f24 Rename EVMToEWasmTranslator to EVMToEwasmTranslator 2019-12-18 16:57:45 +00:00
Alex Beregszaszi 018960ebb1 Rename EWasmObjectCompiler to WasmObjectCompiler 2019-12-18 15:59:31 +00:00
Alex Beregszaszi cec45a7df5 Rename EWasmCodeTransform to WasmCodeTransform 2019-12-18 15:59:31 +00:00
Alex Beregszaszi 7d3ccee921 Fix implementation of getCodeSize in Ewasm 2019-12-18 14:58:28 +00:00
rodiazet 7d8c4c24ee Add arithmetic test cases for most of EVM->Ewasm translator 2019-12-18 13:58:03 +01:00
chriseth b6fc703a27 Merge remote-tracking branch 'origin/release' into HEAD 2019-12-17 19:47:59 +01:00
chriseth 7b84e141dc Descend into for loops when determining call graph. 2019-12-17 13:47:51 +01:00
Alex Beregszaszi 1294c0df99 Rename EWasmAST to WasmAST 2019-12-11 12:08:38 +00:00
Alex Beregszaszi ae7cc58b55 Rename EWasmToText to TextTransform 2019-12-11 12:08:38 +00:00
Alex Beregszaszi fbf946e493 Add also smoke tests for opcodes not part of Ewasm 2019-12-10 17:00:45 +00:00
Alex Beregszaszi 7f40ca5a8f Fix extcodecopy() stub in EVMToEWasm 2019-12-10 17:00:45 +00:00
chriseth 42d9a8e962 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-04 17:01:44 +01:00
chriseth bbeb093abf Detect loops in call graph generator. 2019-12-03 21:38:20 +01:00
chriseth 2f11ac3590 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-03 21:17:15 +01:00
chriseth 19a6f09cc8 Merge commit '4d2f20570' into develop_060 2019-12-03 21:01:31 +01:00
Alex Beregszaszi 7e8f0a17bc Replace all solAsserts with yulAsserts in libyul 2019-12-03 17:54:34 +01:00
Mathias L. Baumann a13416f4da Merge pull request #7882 from ethereum/libyul-assert
Actually throw YulAssertion in yulAssert
2019-12-03 17:39:22 +01:00