RFR (M): GRAAL-218: add CompileTheWorld functionality

Christian Thalinger christian.thalinger at oracle.com
Thu Apr 11 18:05:02 PDT 2013


Here is a reworked version of the patch:

http://cr.openjdk.java.net/~twisti/GRAAL-218

There are now two different syntaxes that are supported:

1) the Hotspot way:  -XX:+CompileTheWorld -Xbootclasspath/p:foo.zip:bar.jar

2) the Graal way: -G:CompileTheWorld=foo.zip:bar.jar

The first is for compatibility and only works with optimized builds or lower (by lower I mean fastdebug, debug).  The second also works in a product build.

I've added a test which compiles the first 5 classes of rt.jar.

-- Chris

On Apr 11, 2013, at 7:53 AM, Morris Meyer <morris.meyer at oracle.com> wrote:

> For a unit test perhaps we could just iterate the jars and their classes (without compiling) to validate the integrity of the class path.
> 
>        --mm
> 
> On 4/11/13 8:27 AM, Thomas Wuerthinger wrote:
>> Yes, we can add one. However, we can basically only assert that the compiler does not bailout or throw an exception for CTW. Or can we assert any additional properties?
>> 
>> - thomas
>> 
>> On Apr 11, 2013, at 12:22 PM, Morris Meyer <morris.meyer at oracle.com> wrote:
>> 
>>> Is there going to be a unit test w this functionality?
>>> 
>>>    --mm
>>> 
>>> 
>>> On Apr 10, 2013, at 11:16 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>>> 
>>>> On Apr 10, 2013, at 2:28 PM, Gilles Duboscq <gilwooden at gmail.com> wrote:
>>>> 
>>>>> Looks good, the huge method check is not applied to constructors, i suppose this is the same in normal CTW?
>>>> No.  The check happens for all methods (constructors and normal methods).  I will add that for the constructors too.
>>>> 
>>>> Actually I would like to move the CTW logic into it's own class (maybe CompileTheWorld?).  Where would I put such a class?
>>>> 
>>>> -- Chris
>>>> 
>>>>> 
>>>>> On Wed, Apr 10, 2013 at 10:48 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>>>>> http://cr.openjdk.java.net/~twisti/GRAAL-218
>>>>> 
>>>>> GRAAL-218: add CompileTheWorld functionality
>>>>> Reviewed-by:
>>>>> 
>>>>> Add CompileTheWorld functionality to Graal. I decided to re-implement it in Java so that we can get rid of the C++ implementation at a later point. After all CTW should be part of the compiler.
>>>>> 
>>>>> graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ConstantPool.java
>>>>> graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java
>>>>> graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java
>>>>> graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java
>>>>> graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java
>>>>> graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantPool.java
>>>>> src/share/vm/graal/graalCompilerToVM.cpp
>>>>> 
>>>>> 
> 



More information about the graal-dev mailing list