chriseth
|
b604b87272
|
Add AZTEK code as test.
|
2019-01-07 16:23:35 +01:00 |
|
chriseth
|
2e9c70add0
|
Use rematerializer if variable is unreferenced or value is "cheap".
|
2019-01-07 14:03:32 +01:00 |
|
chriseth
|
bc22a25a60
|
Remove VarDeclPropagator.
|
2018-12-13 16:51:10 +01:00 |
|
chriseth
|
6c6a53a439
|
Do not create unassigned variables.
|
2018-12-13 16:51:10 +01:00 |
|
chriseth
|
11209ec48a
|
Add variable declaration initializer.
|
2018-12-13 16:49:04 +01:00 |
|
chriseth
|
b11d413720
|
Consider return variables to be zero initially.
|
2018-12-13 16:02:30 +01:00 |
|
chriseth
|
60a368244a
|
Do not inline into already big functions.
|
2018-12-13 12:12:54 +01:00 |
|
chriseth
|
9557dd7e74
|
Support unassigned variables in the SSA value tracker and the data flow analyzer.
|
2018-12-12 18:06:28 +01:00 |
|
Daniel Kirchner
|
1eb60cbb39
|
Add structural simplifier as optimization step for Yul.
|
2018-12-06 18:37:35 +01:00 |
|
Mathias Baumann
|
f4e9c70ecc
|
Tests for SSAValueTracker ignoring function call on rhs
|
2018-12-05 18:01:41 +01:00 |
|
Mathias Baumann
|
5d31ad2daf
|
Test for unhandled default values in expression simplifier
|
2018-12-05 11:43:02 +01:00 |
|
Daniel Kirchner
|
1b8a013d4a
|
Properly recurse in ForLoopInitRewriter
|
2018-12-04 13:36:25 +01:00 |
|
Christian Parpart
|
f705a45d43
|
[Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block.
|
2018-11-16 13:15:41 +01:00 |
|
chriseth
|
2e025cf917
|
Update tests.
|
2018-11-13 13:33:33 +01:00 |
|
chriseth
|
9c6048b0b8
|
Merge pull request #5333 from ethereum/joinPerformance
[Yul] Use map join algorithm for performance.
|
2018-11-13 12:15:11 +01:00 |
|
Daniel Kirchner
|
74557ceb0e
|
Deterministic YulStringRepository using string hashes.
|
2018-11-12 23:43:16 +01:00 |
|
chriseth
|
b1454433b2
|
Remove variables that go out of scope from data structure.
|
2018-11-12 23:00:37 +01:00 |
|
chriseth
|
faa7b61d76
|
Use map join algorithm for performance.
|
2018-11-12 23:00:37 +01:00 |
|
chriseth
|
af65bac737
|
Remove trailing whitespace.
|
2018-11-12 09:15:22 +01:00 |
|
chriseth
|
5ea514213a
|
Test case that shows that break/unbreak are more or less inverse.
|
2018-11-09 15:36:52 +01:00 |
|
chriseth
|
fa44d20721
|
Remove side-effect-free statements.
|
2018-11-08 18:14:36 +01:00 |
|
chriseth
|
cd11f7cfac
|
Merge pull request #5325 from ethereum/fixDataFlow
[Yul] Fix data flow analyzer for function definitions.
|
2018-11-08 12:52:51 +01:00 |
|
chriseth
|
845899e305
|
Use single counter for name dispenser for performance reasons.
|
2018-11-07 23:09:33 +01:00 |
|
chriseth
|
b2b11eaa00
|
Fix data flow analyzer for function definitions.
|
2018-11-07 20:32:55 +01:00 |
|
Christian Parpart
|
f08ab77249
|
Yul: Implements empty-var-decl-propagation
|
2018-10-26 13:13:57 +02:00 |
|
chriseth
|
60f1d52f59
|
Full suite tests.
|
2018-10-24 18:02:08 +02:00 |
|
chriseth
|
b3911798b3
|
Redundant assign eliminator.
|
2018-10-24 13:24:25 +02:00 |
|
chriseth
|
c676b009e1
|
Merge pull request #5267 from ethereum/ssatransform
SSA transform - first step.
|
2018-10-19 11:10:08 +02:00 |
|
chriseth
|
5c274a9251
|
Merge pull request #5260 from ethereum/flattenMore
Flatten more.
|
2018-10-19 11:08:46 +02:00 |
|
chriseth
|
0ebe572f7d
|
Merge pull request #5258 from ethereum/coverage2
Add some simplification tests for operations.
|
2018-10-19 11:04:56 +02:00 |
|
chriseth
|
465845b7a7
|
SSA transform - first step.
|
2018-10-18 18:56:22 +02:00 |
|
chriseth
|
48749146da
|
Fix a bug in CSE where a variable that was already out of scope was used.
|
2018-10-18 14:55:51 +02:00 |
|
chriseth
|
c34fa43d5b
|
Test case that shows a CSE bug related to scopes.
|
2018-10-18 14:54:23 +02:00 |
|
chriseth
|
e8a2d57075
|
Flatten more.
|
2018-10-18 00:58:15 +02:00 |
|
chriseth
|
bda154440c
|
Add some simplification tests for operations.
|
2018-10-18 00:10:39 +02:00 |
|
chriseth
|
7609e2871e
|
Merge pull request #5240 from ethereum/limitDispenserSize
[Yul] Limit name length created by dispenser
|
2018-10-17 22:54:38 +02:00 |
|
chriseth
|
732d09cef1
|
Limit size of generated names and add convenience constructors.
|
2018-10-17 17:21:55 +02:00 |
|
chriseth
|
9fb5feed05
|
Use metrics in the full inliner.
|
2018-10-17 14:11:20 +02:00 |
|
chriseth
|
2ab6430303
|
Inline each function separately.
|
2018-10-16 17:32:21 +02:00 |
|
chriseth
|
a435a14e13
|
Test for crash via inlining.
|
2018-10-16 17:29:20 +02:00 |
|
chriseth
|
e2e4a9fe81
|
New full inliner.
|
2018-10-16 17:16:03 +02:00 |
|
chriseth
|
ffe44536fe
|
Add a "full simplify" test that applies multiple elementary transforms.
|
2018-10-16 16:18:39 +02:00 |
|
Christian Parpart
|
04612936c2
|
Yul: Introduces a block flattening pass + tests
|
2018-10-15 18:21:34 +02:00 |
|
chriseth
|
0664772ece
|
Some renaming leftovers.
|
2018-10-15 12:51:50 +02:00 |
|
Christian Parpart
|
9a4bec7e47
|
Renaming libjulia to libyul
|
2018-10-15 11:52:35 +02:00 |
|