Commit Graph

56 Commits

Author SHA1 Message Date
Alex Beregszaszi
591c591af0 Do not use solAssert within libjulia 2018-05-09 12:28:49 +02:00
Alex Beregszaszi
7bbfd77e8e Move Julia exceptions to libjulia/Exceptions.h 2018-05-09 12:04:44 +02:00
Alex Beregszaszi
8afd0ea030 Introduce Julia filter to encapsulate top level Block as a FunctionDefinition (wasm specific) 2018-05-09 11:21:03 +02:00
Alex Beregszaszi
3b241843a7 Use NameDispenser in Disambiguator 2018-05-09 01:45:50 +02:00
chriseth
ca9fa053b7 Optimize number of moves. 2018-05-02 17:39:42 +02:00
chriseth
12b47a6e0b Assert function hoister and grouper has been used. 2018-05-02 17:39:42 +02:00
chriseth
d3c11a49e5 Move NameDispenser into its own file. 2018-05-02 17:39:42 +02:00
chriseth
bf27e86984 Extend pop(0)-remover to any movable expression. 2018-05-02 17:39:42 +02:00
chriseth
c7245ba362 Replace pop(0)-statements by empty blocks. 2018-05-02 17:39:42 +02:00
chriseth
4370bf5c40 Inline functions returning nothing. 2018-05-02 17:39:42 +02:00
chriseth
0a366fd453 Full inliner. 2018-05-02 17:39:42 +02:00
chriseth
79c415b104 Use hoisting. 2018-05-02 17:36:10 +02:00
Alexander Arlt
f94b793472 Add virtual destructors on base classes. 2018-05-02 13:29:16 +02:00
chriseth
a38418f0d9 Common subexpression eliminator. 2018-04-06 15:16:29 +02:00
Leonardo Alt
fa0ab6bb21 Fix compilation problem from issue 3530 2018-02-16 16:04:30 +01:00
chriseth
d7e5cc3f97 Pretty-print constants in simplifier. 2018-02-09 19:00:40 +01:00
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
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
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
3960f4184d Rename expression inliner. 2018-02-06 14:50:39 +00:00
chriseth
e7ef227226 Function inliner. 2018-02-06 14:50:33 +00:00
chriseth
33abdfab76 Inlinable function filter. 2018-02-06 14:48:47 +00:00
chriseth
c0abddc9dc Test for self-referring assignment. 2018-02-06 12:58:51 +01:00
chriseth
88a5d152d0 Introduce struct for scopes. 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
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
0b8060648e Add comments to 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
eb42720145 Code size metric. 2018-02-02 15:28:41 +01:00
chriseth
95cf9266ab Movability. 2018-01-12 17:48:51 +01:00
chriseth
937b95cbe5 Use explicit visit function for the walker. 2018-01-12 17:21:52 +01:00
Alex Beregszaszi
2cdd789b5d
Merge pull request #3297 from ethereum/separate_expression_and_statement
Separate expression and statement
2018-01-04 12:04:19 +00:00
chriseth
dbad74ac1b
Merge pull request #3279 from ethereum/function_hoister
Function hoister
2017-12-18 15:08:13 +01:00
chriseth
7755e64872
Fixed typos in comment. 2017-12-18 14:56:56 +01:00
chriseth
99c8ed075e Function hoister. 2017-12-14 17:28:29 +01:00
chriseth
a6a64eb8ed Function grouper. 2017-12-14 17:21:01 +01:00
chriseth
54b6739962 Separate expression and statement. 2017-12-13 12:28:15 +01:00
chriseth
2add4f604b Description of the optimiser and stages. 2017-12-11 16:12:08 +01:00
Yoichi Hirai
c2109436de
Merge pull request #3287 from ethereum/substitution
Substitution
2017-12-06 11:12:06 +01:00
chriseth
07825e90fa substitution 2017-12-05 20:12:46 +01:00