Commit Graph

448 Commits

Author SHA1 Message Date
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
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
Alex Beregszaszi
cab00755e8 Actually throw YulAssertion in yulAssert 2019-12-03 16:40:48 +01:00
Alex Beregszaszi
7ace66ad59 Remove last boost/variant include 2019-12-03 14:44:56 +01:00
chriseth
ccfc1840a9 Allow assembly stack to translate its source. 2019-11-28 16:15:15 +01:00