Daniel Kirchner
b9b24daa8a
Merge pull request #9295 from ethereum/requireFLIR
...
Require for loop init rewriter for SSA.
2020-07-04 17:51:57 +02:00
chriseth
711ed588d7
Require for loop init rewriter for SSA.
...
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-07-03 19:24:31 +02:00
Alex Beregszaszi
8b53f85e28
Add Yul syntax tests for dots in identifiers
2020-07-03 15:41:09 +01:00
chriseth
e0b1d8b9bd
Make DataFlowAnalyzer aware of storage / memory slot after sload / mload.
2020-07-01 13:45:25 +02:00
chriseth
3e3f9a472f
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-30 18:56:51 +02:00
Bhargava Shastry
d0ea1f97fd
Yul interpreter: Return selfbalance constant for the expression
...
balance(address()) and balance constant otherwise.
2020-06-30 16:59:13 +02:00
Kamil Śliwak
a331d4449d
Add linkersymbol() builtin to Yul EVM dialect
2020-06-24 15:06:52 +02:00
Kamil Śliwak
1b09b4f950
Allow Yul literals longer than 32-bytes when used as literal arguments for builtins
2020-06-24 15:05:38 +02:00
chriseth
d67734df6f
Fix error IDs.
2020-06-22 18:56:32 +02:00
chriseth
1441b97131
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-22 18:40:20 +02:00
a3d4
1d2ae7d82a
Added error codes to SyntaxTest expectations (changed code)
2020-06-22 16:53:03 +02:00
a3d4
e04cedafc5
Added error codes to SyntaxTest expectations (updated tests)
2020-06-22 16:51:47 +02:00
chriseth
6b3171c38b
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-10 11:30:50 +02:00
Harikrishnan Mulackal
d8263d331e
Ignore warnings for yulOptimizer tests
2020-06-09 13:03:57 +02:00
chriseth
1f49edd29d
Merge pull request #9039 from ethereum/yul-remove-pc-instr
...
[Yul] remove PC instruction
2020-06-03 14:10:35 +02:00
Christian Parpart
9820df58ab
Remove Yul instruction PC and adapt tests accordingly.
2020-06-03 12:49:23 +02:00
ssi91
79407c87fb
remove extra definition of printIndented
...
add CommonBaseTestCase class and inherit some of TestCase classes from it. Since that, remove print source extra definitions
create the base defifnition for printUpdatedExpectations and remove extra definitions of the method
make CommonBaseTestCase c-tor explicit
include AnsiColorized.h and sort includes
implement a common result checker
move the common implementations into TastCase
2020-06-02 21:15:00 +07:00
chriseth
a06ac0f39f
Merge pull request #8958 from ethereum/evm-version-dependent-rules
...
[yul] Add support for EVM version-dependent rules.
2020-05-27 12:52:51 +02:00
Christian Parpart
b7fa5d5040
Mark EVM instruction pc()
as deprecated when used in inline assembly.
2020-05-27 12:07:23 +02:00
Alexander Arlt
a7b89065ca
[yul] Add support for EVM version-dependent rules.
2020-05-27 11:57:08 +02:00
Kamil Śliwak
d199fc537b
Add configurable weights to CodeSize metric
2020-05-20 16:47:23 +02:00
chriseth
6308ca4a22
Binary transform for br and br_if.
2020-05-14 11:30:19 +02:00
Kamil Śliwak
c41a832f65
Move the default optimisation steps from OptimiserSuite to OptimiserSettings
...
- Now it's a mandatory parameter in OptimiserSuite::run()
2020-04-24 17:30:56 +02:00
chriseth
d136e7dc95
Rules for optimizing idempotency for bitwise operations.
2020-04-23 14:21:00 +02:00
chriseth
35eae96a7f
Move helper up and avoid trailing spaces.
2020-04-23 13:16:26 +02:00
chriseth
a7a1feb1b8
Merge pull request #8626 from ethereum/immutable-functioncallgraph
...
Prepare literalArguments for immutable builtin functions
2020-04-09 15:46:02 +02:00
Mathias Baumann
5203503583
Allow for per-parameter literalValues builtin functions
2020-04-08 16:41:38 +02:00
chriseth
823a119117
Merge pull request #8570 from aarlt/clang-tidy-apply-modernize-use-emplace
...
clang-tidy: Apply modernize-use-emplace.
2020-04-07 17:28:50 +02:00
Alexander Arlt
cae6e7769f
Apply modernize-use-override.
2020-04-02 18:00:44 -05:00
Alexander Arlt
90bb1d8a7c
Apply modernize-use-emplace.
2020-04-02 17:35:48 -05:00
a3d4
3b9e926559
Moved "step" from settings to expectations.
2020-03-19 13:59:05 +01:00
a3d4
a5ae51fa6e
Unified dialect selection in libyul/SyntaxTest and YulOptimizerTest.
2020-03-16 23:22:57 +01:00
a3d4
66783c30ce
Introduced TestCaseReader.
2020-03-16 23:14:33 +01:00
chriseth
8d2a9bf773
Merge pull request #8458 from a3d4/partfix-8244-introduced-testcase-shouldrun
...
Partial Fix #8244 : Introduced TestCase::shouldRun().
2020-03-09 18:35:12 +01:00
Daniel Kirchner
809e3503ba
Control flow analysis for inline assembly.
2020-03-09 16:23:10 +01:00
a3d4
29b770c434
Introduced TestCase::shouldRun().
2020-03-09 15:52:20 +01:00
Djordje Mijovic
ec083c4878
Adding source location support to AssemblyStack and thus debugging Yul sources
2020-02-25 22:19:03 +01:00
Djordje Mijovic
c891597204
Adding ssa type check and test for that one
2020-02-24 15:05:19 +01:00
Djordje Mijovic
2efda4129b
Adding test for multi return values including bool in evmTyped dialect. Calling zeroLiteralForType from inliner
2020-02-24 15:05:19 +01:00
chriseth
bddbcbe6a4
Use bool type in word size transform.
2020-02-24 15:05:19 +01:00
chriseth
a52305d3bd
Use bool type in conditional simplifier and for loop condition into body.
2020-02-24 15:05:19 +01:00
Djordje Mijovic
a52c9af5b9
Adding vardecl optimization for boolean types
2020-02-24 15:05:19 +01:00
chriseth
b9b36cd89e
Properly assign types in ExpressionSplitter.
2020-02-24 15:05:19 +01:00
chriseth
2ee748b7f5
Add tests
2020-02-24 15:05:19 +01:00
chriseth
9140bc52c4
Tests for invalid types.
2020-02-24 15:05:18 +01:00
chriseth
6eec968365
Test updates.
2020-02-24 15:05:18 +01:00
Gaith Hallak
24d6702986
[Yul] Prune functions that call each other but are otherwise unreferenced
2020-02-11 20:39:32 +03:00
chriseth
92c9b078b4
Use correct instance of EVMDialectTyped.
2020-02-06 19:46:37 +01:00
chriseth
4ae97f4563
Make dialect option lowercase.
2020-02-06 19:46:37 +01:00
chriseth
5de3379d82
Merge pull request #8238 from ethereum/yul-syntax-tests
...
Implement yul syntax tests
2020-02-05 15:15:41 +01:00
Mathias Baumann
fc10e701fc
Implement yul syntax tests
2020-02-05 14:58:34 +01:00
Mathias Baumann
ef07fc3066
Fix formatting
2020-02-05 13:22:15 +01:00
chriseth
9f0cef97c2
Specify default type for word size transform externally.
2020-02-04 18:13:37 +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
23667ce12d
Update Yul optimizer tests.
2020-01-29 17:25:25 +01:00
chriseth
e7b95de315
Tests for default type parsing.
2020-01-29 17:25:25 +01:00
chriseth
fbe5bb0cce
Parse default dialect and omit when printing.
2020-01-29 17:25:25 +01:00
chriseth
e41155cf48
Merge pull request #8062 from imapp-pl/polyfill-part-2
...
Arithmetic functions implementation for EVM->EWasm translator.
2020-01-29 17:22:27 +01:00
Mathias Baumann
00e4d13975
TestFramework: Merge Options.h into Common.h
2020-01-29 12:27:05 +01:00
Mathias Baumann
2f1f8e25c1
TestFramework: Remove headers from Options.h
2020-01-28 17:29:22 +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
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
123ea0a250
Remove asm flavour.
2020-01-14 17:16:09 +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
ed45b000d1
Adapt tests directory to C++ namespace changes.
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
3994c9135f
Tests.
2019-12-29 15:53:47 +01:00
chriseth
1e59c19166
Dialect setting for yul optimizer tests.
2019-12-18 21:54:30 +01:00
Alex Beregszaszi
7effc94f24
Rename EVMToEWasmTranslator to EVMToEwasmTranslator
2019-12-18 16:57:45 +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
244b011a30
More test cases.
2019-12-17 17:08:27 +01:00
chriseth
143471fe87
Tests.
2019-12-17 15:47:32 +01:00
Alex Beregszaszi
2a808e4f32
Add trace for unreachable in Yul Ewasm translation tests
2019-12-15 13:28:38 +00:00
chriseth
b53629d3d0
Merge pull request #7977 from imapp-pl/yul-ewasm-tests-imapp
...
Add comparison test cases for most of EVM->Ewasm translator
2019-12-12 14:07:13 +01:00
rodiazet
336b436d3e
Add comparison test cases for most of EVM->Ewasm translator
...
Add comparison test cases for most of EVM->Ewasm translator
2019-12-11 23:23:35 +01:00
Alex Beregszaszi
8cb085ca0d
Add bitwise test cases for most of EVM->Ewasm translator
2019-12-11 12:44:05 +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
d8cf8e98bd
Add basic test cases for most of EVM->Ewasm translator
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
f713b7e158
Remove trailing whitespace in test.
2019-12-03 21:38:20 +01:00
chriseth
bbeb093abf
Detect loops in call graph generator.
2019-12-03 21:38:20 +01:00
Daniel Kirchner
025a696bb0
Fix unrelated test failure.
2019-11-28 20:01:36 +01:00
chriseth
f7fc42d8c3
Merge pull request #7826 from ethereum/develop
...
Merge develop into develop_060
2019-11-28 13:37:19 +01:00
chriseth
301215f186
Merge pull request #7461 from sifmelcara/licm
...
[YulOpt] Implement loop-invariant code motion
2019-11-28 12:00:19 +01:00
mingchuan
db60d123d0
[YulOpt] Implement loop-invariant code motion
2019-11-28 11:59:29 +01:00
chriseth
1ebcc757e1
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-27 19:14:08 +01:00
chriseth
0bb88dabb7
Restrict usage of plain "new".
2019-11-27 17:55:11 +01:00
chriseth
9e9b643b93
Tune the suite.
2019-11-27 11:56:11 +01:00
chriseth
b0db64ff5b
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-26 16:19:35 +01:00
chriseth
d4d0df021d
EWasm translation tests.
2019-11-26 15:46:33 +01:00
Leonardo Alt
389da5228e
Merge remote-tracking branch 'origin/develop' into merge_develop_060
2019-11-20 12:27:40 +01:00
Leonardo Alt
be849b3c47
Replace boost::variant by std::variant in libyul
2019-11-19 17:23:18 +01:00
chriseth
46ac16d25c
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-04 19:09:11 +01:00
chriseth
cca7f01199
Tests for conditional unsimplifier
2019-11-01 14:07:25 +01:00
chriseth
ce87f11885
Test updates
2019-11-01 14:01:56 +01:00
chriseth
61a2d44f38
Conditional unsimplifier
2019-11-01 14:01:56 +01:00
chriseth
21b9606ed3
Test updates.
2019-11-01 14:01:56 +01:00
chriseth
19ccdfb0b3
No into body.
2019-11-01 14:01:56 +01:00
chriseth
5d6e983be3
Conditional simplifier.
2019-11-01 14:01:56 +01:00
chriseth
499fe57d33
Tests
2019-10-29 14:32:16 +01:00
chriseth
91a92a01d5
Test updates.
2019-10-29 14:32:16 +01:00
chriseth
edf1e83fda
Merge remote-tracking branch 'origin/develop' into develop_060
2019-10-28 15:21:49 +01:00
Christian Parpart
df729b3084
Make use of C++17 std::optional<> instead of boost::optional<>.
2019-10-28 11:39:30 +01:00
Christian Parpart
3c1d12b16c
Assembly: Remove errorTypeForLoose property from AsmAnalyzer.
2019-10-25 15:01:26 +02:00
Christian Parpart
e40c498260
Adapting the tests to strict inline assembly.
2019-10-25 15:01:25 +02:00
chriseth
9ce1ca2340
Refactor Optimiser Steps Interface.
2019-09-24 14:52:01 +02:00
mingchuan
520a3ccfff
[YulOpt] declare SSA var when control flow joins
2019-09-17 13:22:02 +02:00
chriseth
5859a69c44
Merge pull request #7409 from ethereum/forLoopOutOfBody
...
[Yul] Move for loop condition out of body.
2019-09-17 12:58:56 +02:00
chriseth
68986a58b6
Test.
2019-09-17 12:32:46 +02:00
chriseth
7a79742f3d
Out of body again.
2019-09-17 12:30:15 +02:00
chriseth
2d601a4f23
Merge pull request #7414 from ethereum/refactorSSA
...
Refactor SSA transform.
2019-09-13 17:55:39 +02:00
chriseth
20bada4c60
Refactor SSA transform.
2019-09-12 20:07:39 +02:00
Daniel Kirchner
f86c5da202
Fix SSA reverser in special case of declaration followed by self-assignment.
2019-09-12 18:17:13 +02:00
chriseth
4f80117eef
Use builtin iszero for for loop condition rewriting.
2019-09-12 10:26:16 +02:00
chriseth
fcfe829534
Introduce LiteralRematerializer and thus simplify StructuralSimplifier.
2019-09-11 19:50:24 +02:00
chriseth
20f6fbf88e
Load resolver involving staticcall.
2019-09-10 12:09:13 +02:00
Bhargava Shastry
09fa31ccc5
yul: Add new optimizer rules for create and create2 builtins
2019-09-09 17:06:56 +02:00
chriseth
96b6b45658
Merge pull request #7324 from ethereum/activateLoadResolver
...
[Yul] Activate load resolver.
2019-09-09 16:45:41 +02:00
chriseth
5b4b4011c7
Extend memory beyond 32 byte addresses in interpreter.
2019-09-04 20:10:42 +02:00
chriseth
633932c5f1
Update tests.
2019-09-04 19:16:54 +02:00
chriseth
55024d40fe
Test updates.
2019-09-02 17:41:51 +02:00
chriseth
127bcfc69d
Take user function side-effects into account for unused pruner.
2019-09-02 17:41:51 +02:00
chriseth
1c5845e3f2
Side-effects of user-defined functions.
2019-09-02 17:41:51 +02:00
chriseth
bdf29277a2
Change interpreter memory to be non-contiguous.
2019-09-02 13:51:47 +02:00
chriseth
a988b64597
Merge pull request #7312 from ethereum/fixInterpreterScopes
...
Fix handling of scopes in Yul Interpreter.
2019-09-02 12:05:33 +02:00
chriseth
01e0a12c3b
Fix handling of scopes in Yul Interpreter.
2019-09-02 10:41:26 +02:00
chriseth
e86b5cf14e
Replace byte(A, X) by zero if A >= 32
2019-08-29 15:35:34 +02:00
chriseth
3c4f558242
Tests
2019-08-15 16:30:05 +02:00
chriseth
7d30fbdef0
Extract side effects into their own struct.
2019-08-14 15:06:10 +02:00
chriseth
e396dc7246
Properly set storage and memory after erasing potentially destroyed keys
2019-08-13 18:43:15 +02:00
Mathias Baumann
ccfcee5b80
YulInterpreter: Fix wrong context passed to called function
2019-08-12 17:12:53 +02:00
Leonardo
cd563e526a
Merge pull request #7122 from sifmelcara/expression-inliner-avoid-dup-expr
...
[Yul] ExpressionInliner: avoid duplicating expressions
2019-08-06 11:08:38 +02:00
Erik Kundt
a7a8ba73f9
[isoltest] Moves error types to dedicated file.
2019-08-05 15:00:04 +02:00
mingchuan
46387eaea2
[Yul] ExpressionInliner: avoid duplicating high cost expressions
2019-08-05 11:48:32 +02:00
chriseth
0c0b5a09cd
Add another test related to stack compressor and msize.
2019-07-18 16:40:46 +02:00
chriseth
a0a0a34a21
Do not overwrite allowMSizeOptimization
2019-07-16 10:13:18 +02:00
chriseth
869d69d293
Supply full object to stack compressor and Optimizer Suite.
2019-07-10 18:49:42 +02:00
chriseth
2a5280faa0
Check availability of data objects already in analysis phase.
2019-07-10 18:49:42 +02:00
chriseth
e2bfb1a663
Translation of switch statement for wasm backend.
2019-06-27 13:02:35 +02:00
chriseth
f5f1b2649c
Adding forgotten test for load resolver.
2019-06-25 17:25:53 +02:00
chriseth
2b979cba38
Also optimize memory.
2019-06-20 18:43:37 +02:00
chriseth
8572600401
Implement knowledge base.
2019-06-20 18:43:37 +02:00