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
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
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
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
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?
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