aboutsummaryrefslogtreecommitdiffstats
path: root/test/libyul/yulOptimizerTests/fullInliner/large_function_single_use.yul
blob: 72beb8b13f8f598d508f67e3fc5907584080b43b (plain) (blame)
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
{
    function f(a) -> b {
        let x := mload(a)
        b := sload(x)
        let c := 3
        mstore(mul(a, b), mload(x))
        let y := add(a, x)
        sstore(y, 10)
    }
    // Single-use functions are always inlined.
    let r := f(mload(1))
}
// ----
// fullInliner
// {
//     {
//         let f_a := mload(1)
//         let f_b := 0
//         let f_x := mload(f_a)
//         f_b := sload(f_x)
//         let f_c := 3
//         mstore(mul(f_a, f_b), mload(f_x))
//         let f_y := add(f_a, f_x)
//         sstore(f_y, 10)
//         let r := f_b
//     }
//     function f(a) -> b
//     {
//         let x := mload(a)
//         b := sload(x)
//         let c := 3
//         mstore(mul(a, b), mload(x))
//         let y := add(a, x)
//         sstore(y, 10)
//     }
// }