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