Почему javac не оптимизирует даже простой код?
Учитывая следующий код:
public class MainClass {
public static int f(){
int i=0;
i++;
return i;
}
}
компилятор javac выдает следующий код:
Compiled from "MainClass.java"
public class latte_jvm.MainClass {
public static int f();
Code:
0: iconst_0
1: istore_0
2: iinc 0, 1
5: iload_0
6: ireturn
}
Функция f делает действительно простую вещь - она просто возвращает 1.Это так прямо переведено, что мне трудно поверить, что java-компилятор вообще делает какие-либо оптимизации. Почему создатели java-компиляторов решили не проводить такую оптимизацию на этапе компиляции?