Commit Graph
460 Commits
Author SHA1 Message Date
chriseth ce72c1fc34 Use true in for loop into body. 2020-02-05 17:16:42 +01:00
chriseth edfd30bcb7 Use proper type in conditional simplifier. 2020-02-05 13:06:12 +01:00
chriseth 48933df18d Add some missing wasm functions. 2020-02-04 22:44:08 +01:00
chriseth c41ef15a86 Fix types for polyfill. 2020-02-04 22:44:08 +01:00
chriseth 8f546849f2 Add i32 functions to wasm dialect. 2020-02-04 22:44:08 +01:00
chriseth 7cca036f4c Merge pull request #8224 from a3d4/refactor-sourcelocation
Replaced SourceLocation::isEmpty() with isValid() and hasText().
2020-02-04 22:23:51 +01:00
chriseth d3739fe620 Fix WordSizeTransform to properly assign default types. 2020-02-04 18:13:37 +01:00
chriseth 9f0cef97c2 Specify default type for word size transform externally. 2020-02-04 18:13:37 +01:00
chriseth 967ce8dd51 Merge pull request #8215 from imapp-pl/yul-optimiser-step-abbreviations
Yul optimiser step abbreviations
2020-02-03 14:03:32 +01:00
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