Skip to content

Instantly share code, notes, and snippets.

@cameel
Last active February 21, 2024 14:18
Show Gist options
  • Save cameel/0310c35f4d50f320a77a4a7e65dd0060 to your computer and use it in GitHub Desktop.
Save cameel/0310c35f4d50f320a77a4a7e65dd0060 to your computer and use it in GitHub Desktop.
solc-seqbench single-pass/deposit_contract/soltest-input 0.8.25-seqbench.2024.2.14+commit.a2cabcb9
# Default sequence from solc 0.8.24 with only a single iteration of the main loop
dhfoDgvulfnTUtnIf # None of these can make stack problems worse
xa[r]EscLM # Turn into SSA and simplify
cCTUtTOntnfDIul # Perform structural simplification
Lcul # Simplify again
Vcul [j] # Reverse SSA
# should have good "compilability" property here.
Tpeul # Run functional expression inliner
xa[rul] # Prune a bit more in SSA
xa[r]cL # Turn into SSA again and simplify
gvif # Run full inliner
CTUca[r]LSsTFOtfDnca[r]Iulc # SSA plus simplify
jmul[jul] VcTOcul jmul # Make source short and pretty
fDnTOcmu # Cleanup sequence

single-pass/deposit_contract/soltest-input

runtime-gas runtime-gas-vs-optimization-time bytecode-size bytecode-size-vs-optimization-time creation-gas creation-gas-vs-optimization-time step-duration optimization-time

index step step_name bytecode_size creation_gas runtime_gas duration_microsec optimization_time
1 d VarDeclInitializer 5063 1757620 774549 38 38
2 h FunctionHoister 5063 1757620 774549 96 134
3 f BlockFlattener 5063 1757620 774549 28 162
4 o ForLoopInitRewriter 5063 1757620 774549 42 204
5 D DeadCodeEliminator 5063 1757620 774549 2625 2829
6 g FunctionGrouper 5063 1757620 774549 0 2829
7 v EquivalentFunctionCombiner 5063 1757620 774549 671 3500
8 u UnusedPruner 5004 1745349 774516 2714 6214
9 l CircularReferencesPruner 5004 1745349 774516 216 6430
10 f BlockFlattener 5004 1745349 774516 29 6459
11 n ControlFlowSimplifier 5004 1745349 774516 225 6684
12 T LiteralRematerialiser 4984 1741199 774185 846 7530
13 U ConditionalUnsimplifier 4984 1741199 774185 2388 9918
14 t StructuralSimplifier 4984 1741199 774185 30 9948
15 n ControlFlowSimplifier 4984 1741199 774185 205 10153
16 I ForLoopConditionIntoBody 4994 1743000 776681 28 10181
17 f BlockFlattener 4994 1743000 776681 26 10207
18 x ExpressionSplitter 5228 1791293 776445 1441 11648
19 a SSATransform 5247 1796876 779618 1288 12936
20 r UnusedAssignEliminator 5247 1796876 779618 2861 15797
21 E EqualStoreEliminator 5247 1796876 779618 2301 18098
22 s ExpressionSimplifier 5349 1814871 779303 2578 20676
23 c CommonSubexpressionEliminator 5179 1777115 759708 3106 23782
24 L LoadResolver 5179 1777115 759708 2611 26393
25 M LoopInvariantCodeMotion 5200 1770872 734520 1532 27925
26 c CommonSubexpressionEliminator 5236 1779065 740454 2467 30392
27 C ConditionalSimplifier 5220 1775602 740352 2228 32620
28 T LiteralRematerialiser 5072 1747963 736701 1267 33887
29 U ConditionalUnsimplifier 5074 1748395 737171 2199 36086
30 t StructuralSimplifier 5074 1748395 737171 36 36122
31 T LiteralRematerialiser 5074 1748395 737171 1079 37201
32 O ForLoopConditionOutOfBody 5074 1748395 737171 31 37232
33 n ControlFlowSimplifier 5074 1748395 737171 352 37584
34 t StructuralSimplifier 5074 1748395 737171 55 37639
35 n ControlFlowSimplifier 5074 1748395 737171 428 38067
36 f BlockFlattener 5074 1748395 737171 35 38102
37 D DeadCodeEliminator 5074 1748395 737171 2383 40485
38 I ForLoopConditionIntoBody 5074 1748395 737171 30 40515
39 u UnusedPruner 5027 1738907 734664 2982 43497
40 l CircularReferencesPruner 5027 1738907 734664 187 43684
41 L LoadResolver 5027 1738907 734664 1990 45674
42 c CommonSubexpressionEliminator 5027 1738907 734664 1781 47455
43 u UnusedPruner 5027 1738907 734664 1416 48871
44 l CircularReferencesPruner 5027 1738907 734664 187 49058
45 V SSAReverser 5030 1739555 734730 198 49256
46 c CommonSubexpressionEliminator 5019 1737225 734490 1796 51052
47 u UnusedPruner 5019 1737225 734490 1844 52896
48 l CircularReferencesPruner 5019 1737225 734490 189 53085
49 j ExpressionJoiner 5017 1736793 734190 290 53375
50 T LiteralRematerialiser 5017 1736793 734190 301 53676
51 p UnusedFunctionParameterPruner 5033 1740191 734352 331 54007
52 e ExpressionInliner 4220 1589403 697796 214 54221
53 u UnusedPruner 4220 1589427 697796 1431 55652
54 l CircularReferencesPruner 4220 1589427 697796 139 55791
55 x ExpressionSplitter 4320 1609237 697165 950 56741
56 a SSATransform 4348 1617709 700505 685 57426
57 r UnusedAssignEliminator 4348 1617709 700505 1806 59232
58 u UnusedPruner 4326 1613052 699563 1576 60808
59 l CircularReferencesPruner 4326 1613052 699563 135 60943
60 x ExpressionSplitter 4326 1613052 699563 337 61280
61 a SSATransform 4344 1616833 700499 792 62072
62 r UnusedAssignEliminator 4344 1616833 700499 1786 63858
63 c CommonSubexpressionEliminator 4578 1664724 704684 1903 65761
64 L LoadResolver 4571 1663210 705390 1745 67506
65 g FunctionGrouper 4571 1663210 705390 0 67506
66 v EquivalentFunctionCombiner 4571 1663210 705390 538 68044
67 i FullInliner 4656 1639487 684402 8874 76918
68 f BlockFlattener 4656 1639487 684402 83 77001
69 C ConditionalSimplifier 4656 1639487 684402 2237 79238
70 T LiteralRematerialiser 4366 1593207 669431 4038 83276
71 U ConditionalUnsimplifier 4366 1593207 669431 2087 85363
72 c CommonSubexpressionEliminator 5363 1777926 683031 6349 91712
73 a SSATransform 5105 1708510 685099 3773 95485
74 r UnusedAssignEliminator 5170 1722544 687154 3500 98985
75 L LoadResolver 5173 1719835 687062 5025 104010
76 S UnusedStoreEliminator 5168 1718755 687098 7138 111148
77 s ExpressionSimplifier 4642 1626583 673930 6364 117512
78 T LiteralRematerialiser 3968 1508698 669278 3475 120987
79 F FunctionSpecializer 3931 1500709 665712 603 121590
80 O ForLoopConditionOutOfBody 3931 1500709 665712 65 121655
81 t StructuralSimplifier 3893 1492644 667476 196 121851
82 f BlockFlattener 3893 1492644 667476 72 121923
83 D DeadCodeEliminator 3893 1492644 667476 1831 123754
84 n ControlFlowSimplifier 3893 1492644 667476 1048 124802
85 c CommonSubexpressionEliminator 4525 1603801 670753 5917 130719
86 a SSATransform 4623 1613865 674294 2424 133143
87 r UnusedAssignEliminator 4623 1613865 674294 2475 135618
88 I ForLoopConditionIntoBody 4623 1613865 674294 56 135674
89 u UnusedPruner 3481 1453259 674312 3603 139277
90 l CircularReferencesPruner 3481 1453259 674312 41 139318
91 c CommonSubexpressionEliminator 3461 1449361 670771 1295 140613
92 j ExpressionJoiner 3455 1448063 670009 275 140888
93 m Rematerialiser 3338 1430880 668300 550 141438
94 u UnusedPruner 3336 1430640 668181 629 142067
95 l CircularReferencesPruner 3336 1430640 668181 39 142106
96 j ExpressionJoiner 3336 1430640 668181 100 142206
97 u UnusedPruner 3336 1430640 668181 366 142572
98 l CircularReferencesPruner 3336 1430640 668181 38 142610
99 V SSAReverser 3335 1430424 668172 132 142742
100 c CommonSubexpressionEliminator 3334 1430196 669012 499 143241
101 T LiteralRematerialiser 3102 1382060 661440 183 143424
102 O ForLoopConditionOutOfBody 3095 1380595 658944 19 143443
103 c CommonSubexpressionEliminator 3322 1428184 666516 567 144010
104 u UnusedPruner 3322 1428184 666516 534 144544
105 l CircularReferencesPruner 3322 1428184 666516 39 144583
106 j ExpressionJoiner 3322 1428184 666516 92 144675
107 m Rematerialiser 3322 1428184 665658 318 144993
108 u UnusedPruner 3322 1428184 665658 365 145358
109 l CircularReferencesPruner 3322 1428184 665658 38 145396
110 f BlockFlattener 3322 1428184 665658 16 145412
111 D DeadCodeEliminator 3322 1428184 665658 606 146018
112 n ControlFlowSimplifier 3322 1428184 665658 63 146081
113 T LiteralRematerialiser 3095 1380595 658944 186 146267
114 O ForLoopConditionOutOfBody 3095 1380595 658944 17 146284
115 c CommonSubexpressionEliminator 3322 1428184 666516 532 146816
116 m Rematerialiser 3322 1428184 665658 327 147143
117 u UnusedPruner 3322 1428184 665658 398 147541
118 f BlockFlattener 3322 1428184 665658 15 147556
119 D DeadCodeEliminator 3322 1428184 665658 666 148222
120 n ControlFlowSimplifier 3322 1428184 665658 62 148284
121 T LiteralRematerialiser 3095 1380595 658944 187 148471
122 O ForLoopConditionOutOfBody 3095 1380595 658944 17 148488
123 c CommonSubexpressionEliminator 3322 1428184 666516 533 149021
124 m Rematerialiser 3322 1428184 665658 320 149341
125 u UnusedPruner 3322 1428184 665658 367 149708
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment