Commit Graph

234 Commits

Author SHA1 Message Date
chriseth
aa24e12054 Remove side-effect-free expressions, and not only movable expressions. 2019-05-16 12:30:05 +02:00
chriseth
e8a88b13e4 Introduce side-effect-free as relaxed version of movable. 2019-05-16 12:30:05 +02:00
Daniel Kirchner
a10501bb7d
Merge pull request #6725 from AndreyBronin/develop
GCC 9.1 build fix. error: redundant move in return statement
2019-05-15 11:37:20 +02:00
Andrey Bronin
4eb37fe631 fix warning in GCC 9.1: redundant move in return statement 2019-05-14 17:44:28 +03:00
chriseth
439a225cee Simplify single-run for loops to if statements. 2019-05-13 18:58:36 +02:00
chriseth
99e96c2d66 Refactor termination detection. 2019-05-13 18:58:36 +02:00
chriseth
d9831c8b96 Split structural simplifier. 2019-05-13 10:26:57 +02:00
chriseth
3f55b52a88 Unify suffixes. 2019-05-09 17:07:18 +02:00
chriseth
eaee4412da Implement word size transform for if. 2019-05-09 16:55:39 +02:00
chriseth
0532a8cef2 Format short blocks and loops on a single line. 2019-05-08 13:28:00 +02:00
chriseth
7ab8cc60c9
Merge pull request #6556 from ethereum/wasmCodeTransform
Prototype for Wasm code transform
2019-05-07 17:48:48 +02:00
mingchuan
f7ccdb6447
Implement WordSizeTransform
This transformation turns every u256 variable into four u64 variable.
Purpose is to transpile EVMDialect yul to WasmDialect yul.
2019-05-03 01:51:56 +08:00
chriseth
01d1d08fea Implement switch. 2019-05-02 18:39:54 +02:00
chriseth
c3705f268c Add global variables and support multi-return and multi-assignment. 2019-05-02 18:37:13 +02:00
chriseth
61e36cbfaa Activate ewasm dialect in commandline interface. 2019-05-02 18:36:48 +02:00
chriseth
f6c6871bce EWasm to text transformation. 2019-05-02 18:36:47 +02:00
chriseth
ec27f484a1 Prototype for Wasm code transform into in-memory representation. 2019-05-02 18:33:59 +02:00
chriseth
d763e09f07
Merge pull request #6547 from ethereum/wasmPrototype
[Yul] Wasm dialect.
2019-04-29 10:11:14 +02:00
chriseth
578d618065
Merge pull request #6594 from ethereum/adjustCodeMetric
Increase code cost for branching statements.
2019-04-29 09:48:59 +02:00
chriseth
ec0b78595d [Yul] Wasm dialect. 2019-04-25 17:27:17 +02:00
chriseth
cdf60c3be8
Merge pull request #6593 from ethereum/catchFatalErrorsInAnalysis
[Yul] Catch fatal errors in analysis.
2019-04-25 17:08:46 +02:00
chriseth
bf104f718f Increase code cost for branching statements. 2019-04-25 17:08:11 +02:00
chriseth
f9ec1231b6 Support period as part of identifiers for Yul and Inline Assembly. 2019-04-25 16:48:16 +02:00
chriseth
d5c54e9107 [Yul] Catch fatal errors in analysis. 2019-04-25 11:34:56 +02:00
chriseth
b6bb3ae482
Merge pull request #6555 from sifmelcara/break-for-loop
[Yul] Disallow function definitions inside for loop init blocks
2019-04-25 11:20:44 +02:00
chriseth
f26cdea6ca Disallow Yul function definitions inside for loop init blocks. 2019-04-25 10:32:00 +02:00
chriseth
6292adbde6
Merge pull request #6580 from ethereum/doNotGenerateInstructionsAsNmes
Prevent instructions to be generated as names.
2019-04-24 22:07:05 +02:00
chriseth
0af8d758a5 Prevent instructions to be generated as names. 2019-04-24 14:35:21 +02:00
mingchuan
5d93c492fe [Yul] More accurate error messages for break/continue 2019-04-23 10:15:19 +02:00
chriseth
aad4373da4 Disable redundent assign eliminator for deeply nested loops. 2019-04-23 09:50:25 +02:00
chriseth
b02fbc5d02
Merge pull request #6503 from ethereum/inlineAsm-yul
Inline asm yul
2019-04-18 17:15:09 +02:00
Mathias Baumann
3d061c83d7 IR: Generate inline asm blocks 2019-04-18 16:49:19 +02:00
dm4
b2c812c794
[libyul] fix typo 2019-04-18 19:07:06 +08:00
hydai
d5b65fbf5b [Yul] Output an error of a switch case which contains string literals longer than 32 chars 2019-04-17 22:17:18 +08:00
fnatic
5b6ed7a97c
Removing scope rules for pre block in 'For Loops' 2019-04-17 05:58:40 +05:30
chriseth
fb06451f45 Add assertion that DeadCodeEliminator needs ForLoopInitRewriter. 2019-04-15 23:26:56 +02:00
mingchuan
d49733dfc3
Fix variable decl scope issue in DeadCodeEliminator
FoorLoopInitRewriter needs to be run before DeadCodeEliminator.
2019-04-10 19:00:29 +08:00
chriseth
0d2ae84081 Use move semantics. 2019-04-05 13:41:39 +02:00
chriseth
054c16aa05 [Yul] Fix registration of functions in scopes. 2019-04-05 13:41:38 +02:00
chriseth
d20b3c9f9f Function grouper is a requirement for the VarNameCleaner. 2019-04-05 13:41:38 +02:00
chriseth
887112b1b0 Fix SSA for multi-assignments. 2019-04-04 12:06:04 +02:00
Mathias Baumann
e20acf5d0a Yul Optimizer: Remove dead code 2019-04-01 17:16:04 +02:00
chriseth
3264e9abf0 Make optimiser settings available to assembly stack. 2019-03-28 18:24:13 +01:00
chriseth
e82dcd1f91 Fix namespace. 2019-03-28 14:55:50 +01:00
chriseth
2b0c653f57
Merge pull request #6241 from ethereum/yul-bc-codegen
Yul codegen for break & continue statements
2019-03-28 14:48:50 +01:00
chriseth
529aca5cbd
Merge pull request #6407 from ethereum/changeNamespace
Remove "using namespace" from header and move Instruction to dev::eth.
2019-03-28 14:32:07 +01:00
Christian Parpart
b8c6274179 [yul] Implements EVM codegen for break/continue plus respective tests & ChangeLog entry. 2019-03-28 14:09:25 +01:00
chriseth
2308904f68 Remove "using namespace" from header and move Instruction to dev::eth. 2019-03-28 13:48:11 +01:00
chriseth
6d8e84c93e
Merge pull request #6315 from ethereum/yul-for-continue-tests
[Yul] RedundantAssignEliminator adoptions for continue/break AST nodes
2019-03-28 12:18:02 +01:00
chriseth
91f96c299e More logic about control flow with continue and about finalize. Remove BlockScope. 2019-03-27 22:16:31 +01:00