[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.