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

Christian Thalinger christian.thalinger at oracle.com
Fri Apr 12 14:48:41 PDT 2013


On Apr 12, 2013, at 2:01 PM, Thomas Wuerthinger <thomas.wuerthinger at oracle.com> wrote:

> Looks good! Thanks, thomas

Thanks for the review.  I'll push this now.  -- Chris

> 
> On Apr 12, 2013, at 9:34 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
> 
>> 
>> On Apr 12, 2013, at 9:12 AM, Thomas Wuerthinger <thomas.wuerthinger at oracle.com> wrote:
>> 
>>> Looks good!
>>> 
>>> One more minor comment: Maybe you can give the three values CompileTheWorldStartAt, CompileTheWorldStopAt, and CompileTheWorld as parameters to the constructors of the CompileTheWorld class? Then different instances of the class can be used in parallel and the parameters to the operation are more explicit.
>> 
>> I was thinking about that too.  Here is an updated version with two constructors:
>> 
>> http://cr.openjdk.java.net/~twisti/GRAAL-218/
>> 
>> -- Chris
>> 
>>> 
>>> Thanks, thomas
>>> 
>>> On Apr 12, 2013, at 3:05 AM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>>> 
>>>> 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