harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ming Wu" <wuming.sp...@gmail.com>
Subject Re: A GC module written in Java for DRLVM
Date Wed, 21 Jun 2006 05:56:39 GMT
Weldon,

2006/6/21, Weldon Washburn <weldonwjw@gmail.com>:
>
>
> I looked at JIRA 622.  It looks like there are 22 pages of new
> assembly code and about 26 pages of new java code.  Perhaps you could
> give us a summary of what the assembly code does and why it can't be
> done in Java.


Don't worry about the asms, they are only temporary for
hacking purpose when proper JIT support was (is) unavailable in DRLVM.
Since Java GC needs to access VM internal functionalities, which are
exposed with "C" interfaces, we choose to use fast JNI to access them
easily. Fast JNI in DRLVM requires asm stub for the transition from Java
to C world for every C function, hence you see lots of asms in our code.
They mostly can be eliminated once DRLVM JIT supports intrinsics of
VM_Address, etc., just like the write barrier issue we discussed.
Actually this fast JNI invocations are forming a layer of Java GC
adapter to VM core, which hide the details of VM core implementation
from Java GC, so that the Java GC we developed can plug into a Java VM
core as well.

Also, I would like to see the code you developed that JITs the GC.  It
> might make sense to reuse this code for the MMTk port.


In our work, we do not change JIT much. DRLVM can jit the
Java GC like a normal Java application. The only change is, as explained
above, that JIT needs to know the methods for fast JNI invocations.
Please refer to function
compile_do_compilation_jit(vm/vmcore/src/jit/compile.cpp).


-- 
Thanks,
Ming

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message