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 |
|
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 |
|
chriseth
|
791fde953d
|
First simplify switch with known constant expression.
|
2019-03-06 21:32:55 +01:00 |
|
chriseth
|
21115f8050
|
Fix visitation order bug for structural simplifier.
|
2019-03-06 19:34:07 +01:00 |
|
Mathias Baumann
|
21322dae29
|
YulOpt: Remove empty cases
|
2019-03-06 19:02:23 +01:00 |
|
Mathias Baumann
|
be52aa3181
|
YulOpt: Move if-branches into functions
|
2019-03-06 19:01:05 +01:00 |
|
Mathias Baumann
|
3ce7069766
|
YulOpt: Remove empty cases
|
2019-03-06 18:39:44 +01:00 |
|
Mathias Baumann
|
433175b19e
|
YulOpt: Add comment about optimization
|
2019-03-06 18:39:44 +01:00 |
|
Mathias Baumann
|
db3bea7b56
|
Use reference for so we have to type less
|
2019-03-06 18:39:44 +01:00 |
|
chriseth
|
831353c590
|
Merge pull request #6172 from ethereum/runYulOptAsLongAsHelpful
[Yul] Run yul optimizer until it has no effect anymore.
|
2019-03-06 11:41:22 +01:00 |
|
chriseth
|
f35694f655
|
Run yul optimizer until it has no effect anymore.
|
2019-03-05 20:30:13 +01:00 |
|
Mathias Baumann
|
f6e09d6368
|
YulOpt: Extend StructuralSimplifier to work with all types
|
2019-03-05 18:39:27 +01:00 |
|
Mathias Baumann
|
a52b50d770
|
libyul: Change assertThrow() to yulAssert()
|
2019-03-05 18:39:27 +01:00 |
|
Mathias Baumann
|
921d52bfcd
|
Move Literal to u256 conversions to extra functions
That way we can reuse them at different places
|
2019-03-05 18:39:27 +01:00 |
|
chriseth
|
d0ab5454f8
|
Merge pull request #6171 from ethereum/ignorePrefixWhileInlining
Do not prepend function name to all variables when inlining.
|
2019-03-05 11:36:53 +01:00 |
|
Alex Beregszaszi
|
c64d42e6f5
|
Use currentToken()/advance() helpers from ParserBase consistently in AsmParser
|
2019-03-04 22:56:36 +01:00 |
|
chriseth
|
3f784d6e00
|
Do not prepend function name to all variables when inlining.
|
2019-03-04 18:07:00 +01:00 |
|
Christian Parpart
|
609855546e
|
Yul: Adds optimizer pass to make variable names suffix-canonical.
|
2019-03-04 17:26:56 +01:00 |
|
Alex Beregszaszi
|
9fc7706537
|
Change unreachable parser error to assertion in AsmParser
|
2019-03-04 15:08:46 +01:00 |
|
chriseth
|
8f5e12c192
|
Make unavailable opcodes errors.
|
2019-02-28 22:20:01 +01:00 |
|
Mathias Baumann
|
c686a65876
|
Yul Optimizer: reduce switches with const arguments
|
2019-02-28 15:43:10 +01:00 |
|
chriseth
|
477c53a46f
|
Fix expression simplifying by moving from SSAValueTracker to DataFlowAnalyzer as a base.
|
2019-02-27 16:14:39 +01:00 |
|
chriseth
|
9b7d793407
|
Fix windows build.
|
2019-02-26 19:43:24 +01:00 |
|
Alex Beregszaszi
|
cb7b053a4a
|
Consider extcodehash as part of Constantinople
|
2019-02-26 12:40:31 +00:00 |
|
Alex Beregszaszi
|
5fc8e29fff
|
More granular error reporting in warnOnInstruction in AsmAnalysis
|
2019-02-26 12:39:15 +00:00 |
|
chriseth
|
62e650dc42
|
Remove cpp files without symbols.
|
2019-02-25 17:23:11 +01:00 |
|
Leonardo Alt
|
2405b2151a
|
EVMVersion in langutil namespace instead of solidity
|
2019-02-25 15:29:57 +01:00 |
|
chriseth
|
8aeebf7fcd
|
Merge pull request #6071 from ethereum/moveEVMVersionToEVMDialect
Make EVM version part of EVM dialect.
|
2019-02-25 11:56:53 +01:00 |
|
chriseth
|
7f5b335b47
|
Make EVM version part of EVM dialect.
|
2019-02-21 21:59:46 +01:00 |
|
chriseth
|
91fb2d094d
|
Clear state when entering new function.
|
2019-02-21 20:04:20 +01:00 |
|
Alex Beregszaszi
|
fcf884f201
|
Do not ignore fatal error in AsmParser for inline assembly
|
2019-02-21 16:18:53 +00:00 |
|
chriseth
|
15d275ed37
|
Merge pull request #6023 from ethereum/assignment-whitespace-op
Add extra token for assembly assignment
|
2019-02-21 14:43:29 +01:00 |
|
Mathias Baumann
|
f395d5bab4
|
Add extra token for assembly assignment
Adding an extra token for := prevents whitespace between : = being valid
|
2019-02-21 13:58:21 +01:00 |
|
chriseth
|
947215a901
|
Take builtin functions into account in the compilability checker.
|
2019-02-21 12:13:42 +01:00 |
|
chriseth
|
00084a9bd7
|
Merge pull request #6027 from ethereum/failEnErrorListNonEmpty
Make analysis success not only dependent on flag but also on error list.
|
2019-02-20 15:19:48 +01:00 |
|
chriseth
|
372853b192
|
Make analysis success not only dependent on flag but also on error list.
|
2019-02-20 14:57:58 +01:00 |
|
Alex Beregszaszi
|
0f1be75f97
|
Assert for parserResult in optimize in AssemblyStack
|
2019-02-20 13:54:24 +00:00 |
|
chriseth
|
b4cd2d6a93
|
Properly detect name clashes with functions before their definition.
|
2019-02-18 14:51:05 +01:00 |
|
Daniel Kirchner
|
8ca6715e18
|
More style checks.
|
2019-02-14 11:41:20 +01:00 |
|
chriseth
|
b1df990a0f
|
Merge pull request #5990 from ethereum/provideAccessToAssmeblyAST
Provide access to assembly ast
|
2019-02-13 17:38:22 +01:00 |
|
chriseth
|
c5879589af
|
Merge pull request #5998 from ethereum/codingStyleCheck
More coding style checks
|
2019-02-13 17:36:34 +01:00 |
|