Commit Graph
9271 Commits
Author SHA1 Message Date
Alex Beregszaszi 96fe589f3c Use removeEmptyBlocks helper in FunctionHoister 2018-02-08 22:44:21 +00:00
chriseth 9b61fb2e99 Merge pull request #3456 from ethereum/simplifier
Use simplification rules also for IULIA
2018-02-08 16:50:17 +01:00
chriseth 7dd99a62c5 Try something else. 2018-02-08 15:26:23 +01:00
Alex Beregszaszi 63fb319db3 Merge pull request #3236 from ethereum/inliner
Expression Inliner
2018-02-07 23:48:00 +00:00
chriseth c9a032a1e2 Larger stack for nodejs when building via emscripten. 2018-02-07 20:27:16 +01:00
chriseth 9429e18dda Fix tests for old precompiler. 2018-02-07 19:23:47 +01:00
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
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
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