Project proposal: Graal
john.r.rose at oracle.com
Wed Feb 22 06:09:43 UTC 2012
On Jan 30, 2012, at 4:32 AM, Douglas Simon wrote:
>> Copying may (or may not) result in a significant footprint increase
>> as well as require update synchronization.
> In general, we will attempt to not duplicate VM data structures but
> access them directly from Java code. For example, Graal currently
> does not use the C++ CI interface code (used by c1 and c2).
> The current perm-gen removal project may have an adverse impact on
> this issue. However, we may also be able to directly access C++ data
> structures (we control the compiler ;-).
The copying in the Hotspot CI interface is not just buffering across handles.
There is a transactional aspect to the CI interface. Some kinds of metadata are read under a lock. A stable copy of the read is used optimistically, and rechecked at the end of the compile. This may sometimes be faster and more correct than alternatives that keep only one copy of the metadata.
(FTR, the recheck is ciEnv::validate_compile_task_dependencies.)
More information about the discuss