Natalya, Thanks for the proposal. I think you should start with opening a new JIRA issue, copy the description of the optimization there and submit some micro-benchmarks showing the headroom for optimization. Later we'll use this JIRA for discussng code patches.
One question:
- optimized array may have only one array element usage.
What prevents array objects with, say, 2 elements used from being optimized? Thanks, Pavel On 11/17/06, Natalya Golovleva <[EMAIL PROTECTED]> wrote:
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.