You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Alexey Varlamov (JIRA)" <ji...@apache.org> on 2007/03/12 13:04:10 UTC

[jira] Closed: (HARMONY-957) [drlvm][jit] Devirtualize interface calls in DRLVM optimizing JIT-compiler (Jitrino.OPT)

     [ https://issues.apache.org/jira/browse/HARMONY-957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov closed HARMONY-957.
-----------------------------------

    Resolution: Fixed

Closing as requested.

> [drlvm][jit] Devirtualize interface calls in DRLVM optimizing JIT-compiler (Jitrino.OPT)
> ----------------------------------------------------------------------------------------
>
>                 Key: HARMONY-957
>                 URL: https://issues.apache.org/jira/browse/HARMONY-957
>             Project: Harmony
>          Issue Type: New Feature
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>            Priority: Minor
>         Attachments: IntfcCaller.java, patch.zip
>
>
> Currently DRLVM does *not* devirtualize interface calls. 
> here are some ideas how to implement this feature (from easiest to complicated)
> 0) if there is only one loaded class to implement the interface, choose it
> 1) if there are more, choose the one with it's method invoked earlier (compiled  by some JIT, possibly, some other JIT), 
> 2) if we have many candidate methods that are compiled, choose the most frequent  one (need a method-entry profile)
> 3) initial compilation can devirtualize all possible dispatches and count their edge frequencies so we can rely on basic profiler when choosing the best path (on recompilation)
> 4) implement a real value profiler - this is not an easy task, but may be reused in other optimizations
> 5) Add special annotations to classlib code about the most probable dispatch. E.g. if the variable type does not depend on user's environment and developer can prove that 90% of time the variable is of specific class - JIT can read this annotation from method during the compilation and to devirtualize it.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.