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
|
{
function allocate(size) -> p
{
let _1 := 0x40
p := mload(_1)
let _2 := add(p, size)
let _3 := 0x40
mstore(_3, _2)
}
function array_index_access(array, index) -> p_1
{
let _4 := 0x20
let _5 := mul(index, _4)
p_1 := add(array, _5)
}
let _6 := 0x20
let _7 := allocate(_6)
pop(_7)
let _8 := 0x40
let x := allocate(_8)
let _9 := 2
let _10 := 3
let _11 := array_index_access(x, _10)
mstore(_11, _9)
}
// ----
// commonSubexpressionEliminator
// {
// function allocate(size) -> p
// {
// let _1 := 0x40
// p := mload(_1)
// let _2 := add(p, size)
// let _3 := _1
// mstore(_1, _2)
// }
// function array_index_access(array, index) -> p_1
// {
// let _4 := 0x20
// let _5 := mul(index, _4)
// p_1 := add(array, _5)
// }
// let _6 := 0x20
// let _7 := allocate(_6)
// pop(_7)
// let _8 := 0x40
// let x := allocate(_8)
// let _9 := 2
// let _10 := 3
// let _11 := array_index_access(x, _10)
// mstore(_11, _9)
// }
|