File tree Expand file tree Collapse file tree 4 files changed +130
-2
lines changed
test/libyul/yulOptimizerTests/fullInliner Expand file tree Collapse file tree 4 files changed +130
-2
lines changed Original file line number Diff line number Diff line change 1
1
{
2
- function f (a) -> b {
2
+ function f (a) -> b {
3
3
let x := mload (a)
4
4
b := sload (x)
5
5
}
9
9
x := f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (2 )))))))))))))))))))
10
10
}
11
11
}
12
+ // ====
13
+ // EVMVersion: >homestead
12
14
// ----
13
15
// step: fullInliner
14
16
//
Original file line number Diff line number Diff line change
1
+ {
2
+ function f (a) -> b {
3
+ let x := mload (a)
4
+ b := sload (x)
5
+ }
6
+ // This will stop inlining at some point because
7
+ // the function gets too big.
8
+ function g () -> x {
9
+ x := f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (2 )))))))))))))))))))
10
+ }
11
+ }
12
+ // ====
13
+ // EVMVersion: <=homestead
14
+ // ----
15
+ // step: fullInliner
16
+ //
17
+ // {
18
+ // { }
19
+ // function f(a) -> b
20
+ // { b := sload(mload(a)) }
21
+ // function g() -> x_1
22
+ // {
23
+ // let a_20 := 2
24
+ // let b_21 := 0
25
+ // b_21 := sload(mload(a_20))
26
+ // let a_23 := b_21
27
+ // let b_24 := 0
28
+ // b_24 := sload(mload(a_23))
29
+ // let a_26 := b_24
30
+ // let b_27 := 0
31
+ // b_27 := sload(mload(a_26))
32
+ // let a_29 := b_27
33
+ // let b_30 := 0
34
+ // b_30 := sload(mload(a_29))
35
+ // let a_32 := b_30
36
+ // let b_33 := 0
37
+ // b_33 := sload(mload(a_32))
38
+ // let a_35 := b_33
39
+ // let b_36 := 0
40
+ // b_36 := sload(mload(a_35))
41
+ // let a_38 := b_36
42
+ // let b_39 := 0
43
+ // b_39 := sload(mload(a_38))
44
+ // let a_41 := b_39
45
+ // let b_42 := 0
46
+ // b_42 := sload(mload(a_41))
47
+ // let a_44 := b_42
48
+ // let b_45 := 0
49
+ // b_45 := sload(mload(a_44))
50
+ // let a_47 := b_45
51
+ // let b_48 := 0
52
+ // b_48 := sload(mload(a_47))
53
+ // let a_50 := b_48
54
+ // let b_51 := 0
55
+ // b_51 := sload(mload(a_50))
56
+ // let a_53 := b_51
57
+ // let b_54 := 0
58
+ // b_54 := sload(mload(a_53))
59
+ // let a_56 := b_54
60
+ // let b_57 := 0
61
+ // b_57 := sload(mload(a_56))
62
+ // x_1 := f(f(f(f(f(f(b_57))))))
63
+ // }
64
+ // }
Original file line number Diff line number Diff line change 1
1
{
2
- function f (a) -> b {
2
+ function f (a) -> b {
3
3
let x := mload (a)
4
4
b := sload (x)
5
5
}
6
6
// This will stop inlining at some point because
7
7
// the global context gets too big.
8
8
let x := f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (2 )))))))))))))))))))
9
9
}
10
+ // ====
11
+ // EVMVersion: >homestead
10
12
// ----
11
13
// step: fullInliner
12
14
//
Original file line number Diff line number Diff line change
1
+ {
2
+ function f (a) -> b {
3
+ let x := mload (a)
4
+ b := sload (x)
5
+ }
6
+ // This will stop inlining at some point because
7
+ // the global context gets too big.
8
+ let x := f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (2 )))))))))))))))))))
9
+ }
10
+ // ====
11
+ // EVMVersion: <=homestead
12
+ // ----
13
+ // step: fullInliner
14
+ //
15
+ // {
16
+ // {
17
+ // let a_20 := 2
18
+ // let b_21 := 0
19
+ // b_21 := sload(mload(a_20))
20
+ // let a_23 := b_21
21
+ // let b_24 := 0
22
+ // b_24 := sload(mload(a_23))
23
+ // let a_26 := b_24
24
+ // let b_27 := 0
25
+ // b_27 := sload(mload(a_26))
26
+ // let a_29 := b_27
27
+ // let b_30 := 0
28
+ // b_30 := sload(mload(a_29))
29
+ // let a_32 := b_30
30
+ // let b_33 := 0
31
+ // b_33 := sload(mload(a_32))
32
+ // let a_35 := b_33
33
+ // let b_36 := 0
34
+ // b_36 := sload(mload(a_35))
35
+ // let a_38 := b_36
36
+ // let b_39 := 0
37
+ // b_39 := sload(mload(a_38))
38
+ // let a_41 := b_39
39
+ // let b_42 := 0
40
+ // b_42 := sload(mload(a_41))
41
+ // let a_44 := b_42
42
+ // let b_45 := 0
43
+ // b_45 := sload(mload(a_44))
44
+ // let a_47 := b_45
45
+ // let b_48 := 0
46
+ // b_48 := sload(mload(a_47))
47
+ // let a_50 := b_48
48
+ // let b_51 := 0
49
+ // b_51 := sload(mload(a_50))
50
+ // let a_53 := b_51
51
+ // let b_54 := 0
52
+ // b_54 := sload(mload(a_53))
53
+ // let a_56 := b_54
54
+ // let b_57 := 0
55
+ // b_57 := sload(mload(a_56))
56
+ // let x_1 := f(f(f(f(f(f(b_57))))))
57
+ // }
58
+ // function f(a) -> b
59
+ // { b := sload(mload(a)) }
60
+ // }
You can’t perform that action at this time.
0 commit comments