Commit Graph

69 Commits

Author SHA1 Message Date
chriseth
f950973eb2 Rename ExpressionBreaker to ExpressionSplitter. 2018-10-10 16:23:35 +02:00
chriseth
4d9184ef04 Expression breaker. 2018-10-09 15:48:27 +02:00
chriseth
d5cd02b8ed Fix for inlining inside conditions. 2018-10-01 13:10:10 +02:00
Daniel Kirchner
a1d73a7bef Split simplification rules into two functions. 2018-09-18 14:28:21 +02:00
Leo Arias
0b30dfc7d0
Clarify a little the function hoister optimization 2018-09-10 13:06:09 -06:00
Matías Aereal Aeón
e902ce1aa0 Removing std:: from std::to_string and include for boost/lexical_cast 2018-08-08 11:26:30 -03:00
chriseth
43ded4702c
Clarify optimiser readme. 2018-07-12 12:06:58 +02:00
Cryptomental
140dbfdbd8 Code, Changelog, ReleaseChecklist: Fix typos.
Refs: #4442
2018-07-11 00:26:23 +02:00
Alex Beregszaszi
8fa8b2d08e Rename Julia to Yul in comments 2018-06-26 00:52:27 +02:00
chriseth
3d8d6429ef
Merge pull request #4234 from elopio/patch-4
docs: fix typos
2018-06-06 10:01:18 +02:00
Leo Arias
ae08078cab
docs: fix typos 2018-06-05 23:03:20 -06:00
Leo Arias
df424b1887
comments: fix typo 2018-06-05 22:43:58 -06:00
mingchuan
c4ac825324
Fix wrong template parameter passed to boost::get 2018-05-14 11:30:18 +08:00
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