chriseth
|
7b84e141dc
|
Descend into for loops when determining call graph.
|
2019-12-17 13:47:51 +01:00 |
|
chriseth
|
42d9a8e962
|
Merge remote-tracking branch 'origin/develop' into develop_060
|
2019-12-04 17:01:44 +01:00 |
|
chriseth
|
bbeb093abf
|
Detect loops in call graph generator.
|
2019-12-03 21:38:20 +01:00 |
|
chriseth
|
f7fc42d8c3
|
Merge pull request #7826 from ethereum/develop
Merge develop into develop_060
|
2019-11-28 13:37:19 +01:00 |
|
chriseth
|
301215f186
|
Merge pull request #7461 from sifmelcara/licm
[YulOpt] Implement loop-invariant code motion
|
2019-11-28 12:00:19 +01:00 |
|
mingchuan
|
db60d123d0
|
[YulOpt] Implement loop-invariant code motion
|
2019-11-28 11:59:29 +01:00 |
|
chriseth
|
1ebcc757e1
|
Merge remote-tracking branch 'origin/develop' into develop_060
|
2019-11-27 19:14:08 +01:00 |
|
chriseth
|
9e9b643b93
|
Tune the suite.
|
2019-11-27 11:56:11 +01:00 |
|
chriseth
|
b0db64ff5b
|
Merge remote-tracking branch 'origin/develop' into develop_060
|
2019-11-26 16:19:35 +01:00 |
|
Leonardo Alt
|
2bfa3a7c97
|
Rewrite GenericVisitor
|
2019-11-26 15:55:06 +01:00 |
|
Leonardo Alt
|
72eff30778
|
Fix develop 060 merge
|
2019-11-20 13:49:40 +01:00 |
|
Leonardo Alt
|
389da5228e
|
Merge remote-tracking branch 'origin/develop' into merge_develop_060
|
2019-11-20 12:27:40 +01:00 |
|
Leonardo Alt
|
be849b3c47
|
Replace boost::variant by std::variant in libyul
|
2019-11-19 17:23:18 +01:00 |
|
Erik K
|
94272d44aa
|
Merge pull request #7745 from ethereum/develop
Merge develop into develop_060
|
2019-11-19 15:30:31 +01:00 |
|
chriseth
|
e70ef0b820
|
Simplify patterns.
|
2019-11-15 00:34:01 +01:00 |
|
chriseth
|
2e5a42836c
|
Merge pull request #7681 from ethereum/develop
Merge develop into develop_060
|
2019-11-11 16:42:03 +01:00 |
|
Christian Parpart
|
f15d47f165
|
Yul: Remove obsoleted FunctionalInstruction.
|
2019-11-11 16:04:39 +01:00 |
|
chriseth
|
fa02667075
|
Generalize instructions.
|
2019-11-07 14:33:34 +01:00 |
|
chriseth
|
e275bb88f0
|
Fix windows build.
|
2019-11-06 02:06:19 +01:00 |
|
chriseth
|
46ac16d25c
|
Merge remote-tracking branch 'origin/develop' into develop_060
|
2019-11-04 19:09:11 +01:00 |
|
Christian Parpart
|
cf82bc04d2
|
Fix compilation error on CI (due to "possibly uninitialized field member").
|
2019-11-04 13:45:26 +01:00 |
|
chriseth
|
02d5b7c18a
|
Run literal rematerializer before for loop condition out of body.
|
2019-11-01 14:01:56 +01:00 |
|
chriseth
|
1cc5a03e42
|
Fix bug in unsimplifier.
|
2019-11-01 14:01:56 +01:00 |
|
chriseth
|
61a2d44f38
|
Conditional unsimplifier
|
2019-11-01 14:01:56 +01:00 |
|
chriseth
|
19ccdfb0b3
|
No into body.
|
2019-11-01 14:01:56 +01:00 |
|
chriseth
|
5d6e983be3
|
Conditional simplifier.
|
2019-11-01 14:01:56 +01:00 |
|
Christian Parpart
|
112e63fe15
|
libyul: AST cleanup, eliminating dead Instruction AST type.
|
2019-11-01 12:32:25 +01:00 |
|
chriseth
|
f98925d8b6
|
Remove `leave ` at end of function.
|
2019-10-29 14:32:16 +01:00 |
|
chriseth
|
ceb8ee9124
|
[Yul] leave statement.
|
2019-10-29 14:32:16 +01:00 |
|
chriseth
|
edf1e83fda
|
Merge remote-tracking branch 'origin/develop' into develop_060
|
2019-10-28 15:21:49 +01:00 |
|
Christian Parpart
|
df729b3084
|
Make use of C++17 std::optional<> instead of boost::optional<>.
|
2019-10-28 11:39:30 +01:00 |
|
Christian Parpart
|
e23998fc6e
|
Assembly: Remove Label instruction.
|
2019-10-25 15:01:25 +02:00 |
|
Christian Parpart
|
5e8d348f66
|
Assembly: Remove StackAssignment instruction.
|
2019-10-25 15:01:25 +02:00 |
|
chriseth
|
45705b0e29
|
Debug optimizer steps.
|
2019-10-16 14:06:18 +02:00 |
|
chriseth
|
9ce1ca2340
|
Refactor Optimiser Steps Interface.
|
2019-09-24 14:52:01 +02:00 |
|
mingchuan
|
520a3ccfff
|
[YulOpt] declare SSA var when control flow joins
|
2019-09-17 13:22:02 +02:00 |
|
chriseth
|
7a79742f3d
|
Out of body again.
|
2019-09-17 12:30:15 +02:00 |
|
chriseth
|
2d601a4f23
|
Merge pull request #7414 from ethereum/refactorSSA
Refactor SSA transform.
|
2019-09-13 17:55:39 +02:00 |
|
chriseth
|
20bada4c60
|
Refactor SSA transform.
|
2019-09-12 20:07:39 +02:00 |
|
Daniel Kirchner
|
f86c5da202
|
Fix SSA reverser in special case of declaration followed by self-assignment.
|
2019-09-12 18:17:13 +02:00 |
|
chriseth
|
4f80117eef
|
Use builtin iszero for for loop condition rewriting.
|
2019-09-12 10:26:16 +02:00 |
|
chriseth
|
fcfe829534
|
Introduce LiteralRematerializer and thus simplify StructuralSimplifier.
|
2019-09-11 19:50:24 +02:00 |
|
Bhargava Shastry
|
09fa31ccc5
|
yul: Add new optimizer rules for create and create2 builtins
|
2019-09-09 17:06:56 +02:00 |
|
chriseth
|
a8e8eaebcd
|
Fix load resolver and properly take side-effects of user-defined
functions into account.
|
2019-09-04 19:16:54 +02:00 |
|
chriseth
|
edbec012ae
|
Activate load resolver.
|
2019-09-04 19:16:54 +02:00 |
|
chriseth
|
127bcfc69d
|
Take user function side-effects into account for unused pruner.
|
2019-09-02 17:41:51 +02:00 |
|
chriseth
|
1c5845e3f2
|
Side-effects of user-defined functions.
|
2019-09-02 17:41:51 +02:00 |
|
chriseth
|
a2a06d0318
|
Side effects propagator.
|
2019-08-15 16:30:05 +02:00 |
|
chriseth
|
7d30fbdef0
|
Extract side effects into their own struct.
|
2019-08-14 15:06:10 +02:00 |
|
chriseth
|
e396dc7246
|
Properly set storage and memory after erasing potentially destroyed keys
|
2019-08-13 18:43:15 +02:00 |
|
chriseth
|
823f06625a
|
Merge pull request #7230 from ethereum/callgraph_generator
Callgraph generator.
|
2019-08-13 18:04:56 +02:00 |
|
chriseth
|
57125de9ef
|
Remove ContainsMSize from side-effect-collector.
|
2019-08-13 13:34:33 +02:00 |
|
mingchuan
|
53af4e082e
|
Callgraph generator.
|
2019-08-13 12:49:32 +02:00 |
|
mingchuan
|
46387eaea2
|
[Yul] ExpressionInliner: avoid duplicating high cost expressions
|
2019-08-05 11:48:32 +02:00 |
|
dm4
|
4dc368db3a
|
Fix typo in Yul optimizer
|
2019-07-22 16:25:47 +08:00 |
|
chriseth
|
a0a0a34a21
|
Do not overwrite allowMSizeOptimization
|
2019-07-16 10:13:18 +02:00 |
|
chriseth
|
869d69d293
|
Supply full object to stack compressor and Optimizer Suite.
|
2019-07-10 18:49:42 +02:00 |
|
chriseth
|
67f11104c1
|
EVM to eWasm translator.
|
2019-06-25 19:06:18 +02:00 |
|
chriseth
|
2b979cba38
|
Also optimize memory.
|
2019-06-20 18:43:37 +02:00 |
|
chriseth
|
8572600401
|
Implement knowledge base.
|
2019-06-20 18:43:37 +02:00 |
|
chriseth
|
1f9d11c644
|
Knowledge about storage.
|
2019-06-20 18:43:37 +02:00 |
|
chriseth
|
d9d1c4a312
|
Merge pull request #6967 from ethereum/nameDisplacer
[Yul] Name displacer.
|
2019-06-19 18:56:54 +02:00 |
|
chriseth
|
d7b366ff46
|
Name displacer.
|
2019-06-19 14:55:38 +02:00 |
|
chriseth
|
cc5045a56e
|
[Yul] Run optimizer on all dialects.
|
2019-06-19 10:01:16 +02:00 |
|
chriseth
|
aed979604c
|
Fix unused pruner.
|
2019-06-18 17:40:18 +02:00 |
|
chriseth
|
6cb6fe35ef
|
Make Yul optimizer not fail for wasm.
|
2019-06-17 18:42:47 +02:00 |
|
chriseth
|
c9e2d388b5
|
Merge pull request #6848 from ethereum/invertibleRelation
Implement references using InvertibleRelation as data structure.
|
2019-05-29 13:34:10 +02:00 |
|
chriseth
|
a3f721bbcc
|
Merge pull request #6583 from ethereum/reset_yulstringrepo
Reset YulStringRepository regularly
|
2019-05-28 14:20:53 +02:00 |
|
chriseth
|
2276b567b1
|
Merge pull request #6840 from ethereum/discoverMSize
Only remove msize-modifying instructions if msize is not used.
|
2019-05-28 13:16:55 +02:00 |
|
Bhargava Shastry
|
dbae0fa939
|
Reset Yul string repository before each compilation.
|
2019-05-28 13:12:39 +02:00 |
|
chriseth
|
d7b5ea6761
|
Allow msize optimization only if it is not present.
|
2019-05-28 12:54:32 +02:00 |
|
chriseth
|
afe887adc1
|
Split MovableChecker and introduce SideEffectsUpToMSize.
|
2019-05-28 12:54:32 +02:00 |
|
chriseth
|
cee1340113
|
Add mini-interpreter to check representation.
|
2019-05-28 11:35:07 +02:00 |
|
chriseth
|
1c16124a09
|
Constant optimiser for Yul.
|
2019-05-28 11:35:07 +02:00 |
|
chriseth
|
4407af53b5
|
Gas meter for Yul expressions.
|
2019-05-28 11:34:47 +02:00 |
|
chriseth
|
4061ad0a7b
|
Implement references using InvertibleRelation as data structure.
|
2019-05-27 22:55:59 +02:00 |
|
chriseth
|
e5902c58a4
|
Merge pull request #6777 from sifmelcara/loop-cond-rewriter
[YulOpt] Implement ForLoopConditionIntoBody
|
2019-05-23 12:51:51 +02:00 |
|
chriseth
|
0f146ce55a
|
Do not rematerialize recursively.
|
2019-05-23 12:03:39 +02:00 |
|
chriseth
|
1e3878121a
|
Do not inline recursive functions.
|
2019-05-22 18:15:21 +02:00 |
|
mingchuan
|
a86b00e8d0
|
[YulOpt] Implement ForLoopConditionIntoBody
|
2019-05-22 21:32:18 +08:00 |
|
chriseth
|
1dc15d5864
|
Modify parser and optimizer.
|
2019-05-20 17:32:56 +02:00 |
|
chriseth
|
46d9df7574
|
Add EVM opcodes as builtins.
|
2019-05-20 16:46:31 +02:00 |
|
chriseth
|
8daa281d3d
|
Merge pull request #6776 from ethereum/equivalentFunctionHashes
Use block hashes in EquivalentFunctionDetector.
|
2019-05-20 14:35:39 +02:00 |
|
chriseth
|
4f3b7b232b
|
Merge pull request #6774 from ethereum/dialectRefactor
Dialect refactor
|
2019-05-17 14:00:09 +02:00 |
|
chriseth
|
4bdb981224
|
Make dialect const& and allocate single instances statically.
|
2019-05-17 12:54:24 +02:00 |
|
Daniel Kirchner
|
05c210772a
|
Make use of make_vector where possible.
|
2019-05-17 10:08:53 +02:00 |
|
Daniel Kirchner
|
3c66a56e60
|
Use block hashes in EquivalentFunctionDetector.
|
2019-05-17 08:39:42 +02:00 |
|
chriseth
|
570db164c9
|
Make Dialect const.
|
2019-05-16 21:51:54 +02:00 |
|
chriseth
|
aa24e12054
|
Remove side-effect-free expressions, and not only movable expressions.
|
2019-05-16 12:30:05 +02:00 |
|
chriseth
|
e8a88b13e4
|
Introduce side-effect-free as relaxed version of movable.
|
2019-05-16 12:30:05 +02:00 |
|
Daniel Kirchner
|
a10501bb7d
|
Merge pull request #6725 from AndreyBronin/develop
GCC 9.1 build fix. error: redundant move in return statement
|
2019-05-15 11:37:20 +02:00 |
|
Andrey Bronin
|
4eb37fe631
|
fix warning in GCC 9.1: redundant move in return statement
|
2019-05-14 17:44:28 +03:00 |
|
chriseth
|
439a225cee
|
Simplify single-run for loops to if statements.
|
2019-05-13 18:58:36 +02:00 |
|
chriseth
|
99e96c2d66
|
Refactor termination detection.
|
2019-05-13 18:58:36 +02:00 |
|
chriseth
|
d9831c8b96
|
Split structural simplifier.
|
2019-05-13 10:26:57 +02:00 |
|
chriseth
|
bf104f718f
|
Increase code cost for branching statements.
|
2019-04-25 17:08:11 +02:00 |
|
chriseth
|
6292adbde6
|
Merge pull request #6580 from ethereum/doNotGenerateInstructionsAsNmes
Prevent instructions to be generated as names.
|
2019-04-24 22:07:05 +02:00 |
|
chriseth
|
0af8d758a5
|
Prevent instructions to be generated as names.
|
2019-04-24 14:35:21 +02:00 |
|
chriseth
|
aad4373da4
|
Disable redundent assign eliminator for deeply nested loops.
|
2019-04-23 09:50:25 +02:00 |
|
Mathias Baumann
|
3d061c83d7
|
IR: Generate inline asm blocks
|
2019-04-18 16:49:19 +02:00 |
|