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.




Reply via email to