[rvm-research] liverange + java keywords
"C. Bergström" <[email protected]>
| Newsgroups | gmane.comp.java.jikes.rvm.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi
Sending this on behalf of a friend/fellow researcher
----------
1) How do I access these keywords : synchronized, wait, notify, run,
thread and runnable
For example synchronized
-----------
http://stackoverflow.com/questions/417285/equivalent-code-for-instance-method-synchronization-in-java/649740#649740
|public synchronized void someMethod() {
//stuff
}|
and
|public void someMethod() {
synchronized (this) {
//stuff
}
}
--------
Generated IR (if the above link is to be believed)
--------
public synchronized someMethod()V
RETURN
The second generates:
public someMethod()V
ALOAD 0
DUP
MONITORENTER
MONITOREXIT
RETURN
---------
Is the source semantics for "synchronized" still available or lost in
the lowering process? (Ideally I'd like access at the LIR level)
If it is generally lost - any way to preserve it? (IR metadata?) The
goal is to use it in conjunction with some liverange analysis
I see some other research (leakChaser) introduced SourceCodeInfo which
ends up using annotations - they are preserved, but I'd like to avoid
annotating the code.
###########
#2 LiveRange analysis -
Does it only work at the BB level or is whole PU (function) or
superblock also possible. This would be analysis only phase and most
other optimizations are not a dependency - how much work would any guess
it to be? From the cases we're looking at - the thread/object has a very
long lifetime. It wouldn't surprise me if IPA (interprocedural analysis)
was required
###########
#3 org.mmtk.vm
Lock - Simple, fair locks with deadlock detection.
http://jikesrvm.org/docs/api/org/mmtk/vm/package-use.html
I didn't see any actual implementation of deadlock detection... I must
be missing something
Thanks a lot
./C
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk