Re: [drlvm] interface call devirtualization

2006-07-24 Thread Mikhail Fursov
On 24 Jul 2006 12:17:18 +0700, Egor Pasko [EMAIL PROTECTED] wrote: Interesting results! QuickQuestions: * did you include interface calls in your investigations. Or is it just invokevirtual that you tried? I have no idea what was the way of calling a method. The result shows only the

Re: [drlvm] interface call devirtualization

2006-07-23 Thread Egor Pasko
On the 0x1AD day of Apache Harmony Mikhail Fursov wrote: I promised to start to investigate devirtualization techniques and here is the first result: I hacked the entry-backedge profiler in DRLVM and added the dump of virtual methods call frequencies when VM is about to be shutted down. The

Re: [drlvm] interface call devirtualization

2006-07-19 Thread Mikhail Fursov
Seems like the best choice is to start from a couple of easy heuristics: * if there is only one loaded class to implement the interface, choose it * if there are more, choose the one with it's method invoked earlier (compiled by some JIT, possibly, some other JIT), * if we have many candidate

Re: [drlvm] interface call devirtualization

2006-07-19 Thread Egor Pasko
On the 0x1AB day of Apache Harmony Mikhail Fursov wrote: Seems like the best choice is to start from a couple of easy heuristics: * if there is only one loaded class to implement the interface, choose it * if there are more, choose the one with it's method invoked earlier (compiled by

Re: [drlvm] interface call devirtualization

2006-07-12 Thread Rana Dasgupta
Hi Egor, Nice benchmark. Yes, the cost of not devirtualizing as well as not hoisting ldintfcvt is high. I played around a little with this too and have some comments and questions... First some high level stuff 1) What are the instructions like ldintfcvt, ldvfnslot, etc.in the jit dump?

[drlvm] interface call devirtualization

2006-07-10 Thread Egor Pasko
I looked through the list of TODO projects for JIT [1] and decided to write a microbenchmark detecting how good interface call devirtualization works in JIT (see below) Jitrino.OPT showed very-very slow (~2.5 times slower than JRockit (1.5/linux)). I looked through the compile-time log of