217 Commits
Author SHA1 Message Date
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
Christian Parpart a1ec49409d Yul] RedundantAssignEliminator: Implements break/continue handling within ForLoop. 2019-03-26 17:36:43 +01:00
Alex Beregszaszi c26ffa737e Use move semantics on StackToDeepError 2019-03-26 16:15:16 +00:00
chriseth caddce6ef0 Detect duplicate cases based on integer value of case label. 2019-03-25 12:38:22 +01:00
chriseth 8514c0bc60 Provide max iterations for stack compressor as parameter. 2019-03-20 15:07:05 +01:00
chriseth aa9a2935ac Properly determine whether a variable can be eliminated or not. 2019-03-20 15:07:05 +01:00
chriseth 38cbf8d230 Pass "optimize stack allocation" flag down to the stack compressor. 2019-03-20 15:03:27 +01:00
chriseth 93027c40b6 Merge pull request #6322 from ethereum/asm-datasize-exception-fix
Improve exception information in Yul function datasize(name) and dataoffset(name).
2019-03-20 10:50:49 +01:00
Alex Beregszaszi 5245a66d91 Merge pull request #6318 from ethereum/signal-failure-and-such
Allow simplification patterns to signal failure
2019-03-20 03:38:51 +00:00
Christian Parpart 7f7f44dd63 Improve exception information in Yul function datasize(name) and dataoffset(name).
Makes sure we properly throw a detailed exception instead of an out_of_range from std::map.
2019-03-19 17:17:32 +01:00
Alex Beregszaszi f95388011b Allow simplification patterns to signal failure 2019-03-19 15:51:52 +01:00
Christian Parpart 89f1dbfbb6 [Yul] Refactors RedundantAssignEliminator for future changes wrt. break/continue statements. 2019-03-19 12:24:45 +01:00
chriseth 500843f9c5 Merge pull request #6242 from ethereum/yul-bc-dataflow
Yul dataflow analysis for continue/break statements
2019-03-14 16:34:34 +01:00
Christian Parpart 57bcb8ba83 [yul] Ensures DataFlowAnalyzer works fine with break/continue statements just like without. 2019-03-14 16:18:45 +01:00
chriseth 49d914a391 Fix and test yul stack optimization flag for commandline interface. 2019-03-14 15:34:23 +01:00
chriseth 6d1ed93247 Use stack optimizations. 2019-03-14 15:34:23 +01:00
chriseth 62d8080a19 Update optimiser readme. 2019-03-12 22:02:09 +01:00
Christian Parpart 05e2d362c8 [Yul] Adds break/continue statements and some general tests for for-loop syntax. 2019-03-11 15:05:05 +01:00