Hello all,
For my own research purposes I'm starting to implement support in
DRLVM for what the JikesRVM folks call "replay compilation
methodology" (see: http://jikesrvm.org/Experimental+Guidelines and
Section 5 of http://cs.anu.edu.au/~Steve.Blackburn/pubs/papers/oor-oopsla-2004.pdf)
.
I've thought a bit about it and I know I would need at least the
following:
1) Mechanism for logging edge profiles (I actually already have a
quick and dirty way of doing this).
2) Mechanism for logging call profiles.
3) Mechanism for reading in both profiles and feeding them to the JIT
when running in replay mode.
I also suspect I need to keep track of which classes have been loaded
and when. Basically my thinking here is that the "replay" compiler
may want to inline a method that hasn't even been loaded yet so I'd
need to postpone compilation in such a case.
Right now I'm using a relatively old (ancient?) version of the DRLVM
tree (r510344), but would consider updating to a newer tree if there
is sufficient interest. Is this something that others would want
contributed back to Harmony?
Thanks,
Naveen