blob: 63d024a0ba490908388df883c284dbbce74c9974 (
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
37
38
39
40
41
|
-Xfatal-warnings -Yinline-warnings -Ybackend:GenASM -optimise
/*
The new flag settings could be
-Yopt-warnings -Yopt:l:project
The issue here is that things are being inlined, but a lot of
redundant load/store instructions are left behind:
2.11.7:
public int f();
Code:
0: getstatic #19 // Field Foo$.MODULE$:LFoo$;
3: invokevirtual #23 // Method Foo$.mkFoo:()LFoo;
6: pop
7: bipush 10
9: iconst_1
10: iadd
11: ireturn
2.12.0-M3:
public int f();
Code:
0: getstatic #19 // Field Foo$.MODULE$:LFoo$;
3: invokevirtual #23 // Method Foo$.mkFoo:()LFoo;
6: bipush 10
8: istore_2
9: dup
10: ifnonnull 15
13: aconst_null
14: athrow
15: astore_1
16: iload_2
17: iconst_1
18: iadd
19: istore_3
20: iload_3
21: ireturn
*/
|