Commit Graph

9421 Commits

Author SHA1 Message Date
chriseth
c961a3079d Turn simplification rule tuple into struct. 2018-02-06 22:51:30 +01:00
chriseth
5523296eaa Also apply simplification rules that require multiple identical sub-expressions. 2018-02-06 22:51:30 +01:00
chriseth
f7392cc698 Tests. 2018-02-06 22:51:30 +01:00
chriseth
65c31ecaeb Remove recursive call to simplify with reversed arguments.
(We now have explicit rules for that).
2018-02-06 22:51:30 +01:00
chriseth
295f8c07ad Explicitly add reversed operands for commutative operations. 2018-02-06 22:51:30 +01:00
chriseth
9eea3f29ba Expression simplifier. 2018-02-06 22:51:30 +01:00
chriseth
591813638e Explanation of expression simplifier. 2018-02-06 22:51:30 +01:00
chriseth
b8074cdf78 Add flag to indicate whether it can be applied to expressions with side-effects. 2018-02-06 22:51:30 +01:00
chriseth
491d6d3e0c Move out the rule list. 2018-02-06 22:51:30 +01:00
chriseth
d7863e2054 Test about recursively calling functions. 2018-02-06 14:50:39 +00:00
chriseth
3960f4184d Rename expression inliner. 2018-02-06 14:50:39 +00:00
chriseth
a7ae7c6d04 Tests for functional inliner. 2018-02-06 14:50:39 +00:00
chriseth
e7ef227226 Function inliner. 2018-02-06 14:50:33 +00:00
chriseth
4bd9bcbc77 Tests for inlinable function filter. 2018-02-06 14:48:47 +00:00
chriseth
33abdfab76 Inlinable function filter. 2018-02-06 14:48:47 +00:00
Alex Beregszaszi
d786d65243
Merge pull request #3332 from ethereum/elimination_descirption
Rematerialisation step.
2018-02-06 14:40:41 +00:00
chriseth
c0abddc9dc Test for self-referring assignment. 2018-02-06 12:58:51 +01:00
chriseth
669b63ca5f Test not to remat if the expression is too large. 2018-02-06 12:38:32 +01:00
chriseth
88a5d152d0 Introduce struct for scopes. 2018-02-06 12:38:32 +01:00
chriseth
773be40c19 Reassign test for remat. 2018-02-06 12:38:32 +01:00
chriseth
2b6a7665ee Refactor data flow analysis out of remat. 2018-02-06 12:38:32 +01:00
chriseth
e100af592b Fix for rematerializer. 2018-02-06 12:31:43 +01:00
chriseth
22c4d282aa Only substitute if all referenced variables are in scope. 2018-02-06 12:31:43 +01:00
chriseth
30e6f69bfd Tests for rematerialiser. 2018-02-06 12:31:43 +01:00
chriseth
016fb18ef8 Rematerialisation. 2018-02-06 12:31:42 +01:00
chriseth
d400c44007 Description of variable eliminator. 2018-02-06 12:30:03 +01:00
chriseth
6b917eb528
Merge pull request #3351 from ethereum/remove_unused
Remove unused variables and functions
2018-02-06 12:08:59 +01:00
chriseth
0b8060648e Add comments to UnusedPruner 2018-02-06 10:15:41 +00:00
Alex Beregszaszi
33b27258e4 Add more tests for UnusedPruner 2018-02-06 10:15:41 +00:00
Alex Beregszaszi
2cbbe58281 Support variable declarations without assignment in UnusedPruner 2018-02-06 10:07:00 +00:00
Alexander Arlt
d9c51f9ca1 Set stack-size to 16MB for darwin clang.
By default Apple's clang defines a stack size of 8MB, some tests require
more.
2018-02-05 22:15:05 +01:00
chriseth
b0407cfac0 Unused variable and function remover. 2018-02-05 16:43:39 +00:00
chriseth
9c85589122 Utility to remove empty blocks. 2018-02-05 16:43:39 +00:00
chriseth
3c8b777b9b References counter. 2018-02-05 16:43:39 +00:00
chriseth
5437457f46
Merge pull request #3455 from ethereum/codesizemetric
Code size metric.
2018-02-05 17:12:55 +01:00
Alex Beregszaszi
c696803f0b
Merge pull request #3453 from ethereum/chriseth-patch-1
Remind authors of best practices.
2018-02-04 13:08:55 +00:00
Alex Beregszaszi
32300ea3ff
Merge pull request #3360 from federicobond/nonfatal-reference-errors
Replace some fatal errors when resolving references with normal ones
2018-02-04 13:07:55 +00:00
Federico Bond
aef9518039 Add more test cases for reference resolving error handling 2018-02-02 14:09:32 -03:00
Federico Bond
600e66e605 Replace some fatal errors when resolving references with normal ones 2018-02-02 14:09:32 -03:00
chriseth
eb42720145 Code size metric. 2018-02-02 15:28:41 +01:00
chriseth
01ba8b7e1f
Remind authors of best practices. 2018-02-01 17:13:46 +01:00
chriseth
07f8f96c94
Merge pull request #3450 from ethereum/interface-public-visibility
Issue warning for using public visibility for interface functions
2018-02-01 13:54:51 +01:00
Alex Beregszaszi
b545987ec7 Issue warning for using public visibility for interface functions 2018-02-01 10:28:00 +00:00
William Entriken
5497a85158
Clarify name documentation for mixedCase 2018-01-29 14:45:36 -05:00
chriseth
cc1c461fc0
Merge pull request #3447 from fulldecent/patch-7
Fix new Solidity warnings, for #3379
2018-01-29 20:06:02 +01:00
William Entriken
b517ebb8bc
Fix new Solidity warnings, for #3379 2018-01-29 10:26:07 -05:00
chriseth
bd3692f1e6
Merge pull request #3431 from fulldecent/patch-7
Add mutability declaration to example, for #3379
2018-01-29 13:44:43 +01:00
chriseth
a668b9dee0
Merge pull request #3440 from ysqi/patch-1
update types
2018-01-29 13:40:15 +01:00
William Entriken
1cc31bacef
Remove useless self assignment 2018-01-28 17:41:09 -05:00
YuShuangqi
0ef43978fd
update types
correct the mistakes in writings
2018-01-27 07:36:25 +08:00