Skip to content

Commit f08d349

Browse files
cameelchriseth
authored andcommitted
Separate some inlining tests into pre- and post-homestead
1 parent 49d5c0a commit f08d349

File tree

4 files changed

+130
-2
lines changed

4 files changed

+130
-2
lines changed

test/libyul/yulOptimizerTests/fullInliner/no_inline_into_big_function.yul

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
function f(a) -> b {
2+
function f(a) -> b {
33
let x := mload(a)
44
b := sload(x)
55
}
@@ -9,6 +9,8 @@
99
x := f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(2)))))))))))))))))))
1010
}
1111
}
12+
// ====
13+
// EVMVersion: >homestead
1214
// ----
1315
// step: fullInliner
1416
//
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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+
// }

test/libyul/yulOptimizerTests/fullInliner/no_inline_into_big_global_context.yul

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
{
2-
function f(a) -> b {
2+
function f(a) -> b {
33
let x := mload(a)
44
b := sload(x)
55
}
66
// This will stop inlining at some point because
77
// the global context gets too big.
88
let x := f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(2)))))))))))))))))))
99
}
10+
// ====
11+
// EVMVersion: >homestead
1012
// ----
1113
// step: fullInliner
1214
//
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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+
// }

0 commit comments

Comments
 (0)