Hello all,
JIT Development Tasks list among other tasks contains new optimization - EA-based scalar replacement. EA determinates for every reference object used in the method its state: local, argument escaped and global escaped. Escape analysis (EA) is already committed to harmony. Scalar replacement optimization may be done for local objects (class instances and arrays) that satisfy to: - class should not have finalizer, class instance initializer should not have side effects; - optimized array may have only one array element usage. I am going to implement EA-based scalar replacement for IA-32. The proposal is: 1.. to perform scalar replacement for specified above local objects. 2.. using devirtualization and inlining change method code to create the object only when it is used as a parameter of virtual call and perform scalar replacement for branches with inlined direct calls. Any comments are welcome. Thank you, Natalya.