-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloop.sol
135 lines (88 loc) · 2.15 KB
/
loop.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
contract gasgas {
uint public g0;
uint public g1;
uint public g2;
uint public g3;
uint public g4;
uint public g5;
uint public gas01;
uint public gas12;
uint public gas23;
uint public gas34;
uint public gas45;
function lt_gt() public {
g0 = gasleft();
for (uint i; i < 1000; ) {
if (i > 0) {}
unchecked { ++i; }
}
g1 = gasleft();
gas01 = g0 - g1;
g1 = gasleft();
for (uint i; i < 1000; ) {
if (i != 0) {}
unchecked { ++i; }
}
g2 = gasleft();
gas12 = g1 - g2;
}
function init_to_0() public {
g0 = gasleft();
for (uint i = 0; i < 1000; i++) {
}
g1 = gasleft();
gas01 = g0 - g1;
g1 = gasleft();
for (uint i; i < 1000; i++) {
}
g2 = gasleft();
gas12 = g1 - g2;
}
function length(uint[] calldata array) public {
g0 = gasleft();
for (uint i; i < array.length; i++) {
}
g1 = gasleft();
gas01 = g0 - g1;
uint len = array.length;
g1 = gasleft();
for (uint i; i < len; i++) {
}
g2 = gasleft();
gas12 = g1 - g2;
}
function iter() public {
g0 = gasleft();
for (uint i = 500; i > 0; ) {
i--;
}
g1 = gasleft();
gas01 = g0 - g1;
g1 = gasleft();
for (uint i = 500; i > 0; ) {
--i;
}
g2 = gasleft();
gas12 = g1 - g2;
g2 = gasleft();
for (uint i = 500; i > 0; ) {
i = i - 1;
}
g3 = gasleft();
gas23 = g2 - g3;
g3 = gasleft();
for (uint i = 500; i > 0; ) {
unchecked { i = i - 1; }
}
g4 = gasleft();
gas34 = g3 - g4;
g4 = gasleft();
for (uint i = 500; i > 0; ) {
unchecked { --i; }
}
g5 = gasleft();
gas45 = g4 - g5;
}
}