move logic from C++ to Java, Part 1
Thomas Wuerthinger
thomas.wuerthinger at oracle.com
Mon Feb 11 20:34:05 PST 2013
We could make a public gate repository though where we pull in changes to our gate and benchmarking infrastructure.
- thomas
On Feb 11, 2013, at 12:44 PM, Gilles Duboscq <duboscq at ssw.jku.at> wrote:
> No, currently we only sync from internal to external.
>
>
> On Mon, Feb 11, 2013 at 7:41 PM, Christian Thalinger <
> christian.thalinger at oracle.com> wrote:
>
>>
>> On Feb 11, 2013, at 8:38 AM, Lukas Stadler <lukas.stadler at jku.at> wrote:
>>
>>> Thanks Christian! I will integrate the patch. Keep them coming :-)
>>> You're right, the more of our logic we have in Java the better.
>>
>> Thanks. Certainly I can push them myself next time if you want.
>>
>> Btw. do you guys also sync down to your internal repository from the
>> OpenJDK one? Means, can we push fixes to the OpenJDK repository in the
>> future? I guess not because we don't have a gate right now.
>>
>> -- Chris
>>
>>>
>>> - Lukas
>>>
>>> On Feb 10, 2013, at 5:23 AM, Christian Thalinger <
>> christian.thalinger at oracle.com> wrote:
>>>
>>>> I think we should try to move more code from C++ to Java. This whole
>> Java-native dance makes things just complicated. Here is a small patch to
>> start.
>>>>
>>>> -- Chris
>>>>
>>>>
>>>>
>> graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java
>> src/share/vm/graal/graalCompilerToVM.cpp
>>>> diff --git
>> a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java
>> b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java
>>>> ---
>> a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java
>>>> +++
>> b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java
>>>> @@ -22,18 +22,21 @@
>>>> */
>>>> package com.oracle.graal.hotspot;
>>>>
>>>> +import sun.misc.Unsafe;
>>>> +
>>>> /**
>>>> * Used to communicate configuration details, runtime offsets, etc. to
>> Graal upon compileMethod.
>>>> */
>>>> public final class HotSpotVMConfig extends CompilerObject {
>>>>
>>>> private static final long serialVersionUID = -4744897993263044184L;
>>>> + private static final Unsafe unsafe = Unsafe.getUnsafe();
>>>>
>>>> HotSpotVMConfig() {
>>>> }
>>>>
>>>> // os information, register layout, code generation, ...
>>>> - public boolean windowsOs;
>>>> + public final boolean windowsOs = System.getProperty("os.name
>> ").startsWith("Windows");
>>>> public int codeEntryAlignment;
>>>> public boolean verifyOops;
>>>> public boolean ciTime;
>>>> @@ -44,7 +47,7 @@
>>>> public boolean useAESIntrinsics;
>>>>
>>>> // offsets, ...
>>>> - public int vmPageSize;
>>>> + public final int vmPageSize = unsafe.pageSize();
>>>> public int stackShadowPages;
>>>>
>>>> /**
>>>> diff --git a/src/share/vm/graal/graalCompilerToVM.cpp
>> b/src/share/vm/graal/graalCompilerToVM.cpp
>>>> --- a/src/share/vm/graal/graalCompilerToVM.cpp
>>>> +++ b/src/share/vm/graal/graalCompilerToVM.cpp
>>>> @@ -602,11 +602,7 @@
>>>> #define set_int_array(name, value) do { env->SetObjectField(config,
>> getFieldID(env, config, name, "[I"), value); } while (0)
>>>>
>>>> guarantee(HeapWordSize == sizeof(char*), "Graal assumption that
>> HeadWordSize == machine word size is wrong");
>>>> -#ifdef _WIN64
>>>> - set_boolean("windowsOs", true);
>>>> -#else
>>>> - set_boolean("windowsOs", false);
>>>> -#endif
>>>> +
>>>> set_boolean("verifyOops", VerifyOops);
>>>> set_boolean("ciTime", CITime);
>>>> set_boolean("useFastLocking", GraalUseFastLocking);
>>>> @@ -615,7 +611,6 @@
>>>> set_boolean("useAESIntrinsics", UseAESIntrinsics);
>>>> set_boolean("useTLAB", UseTLAB);
>>>> set_int("codeEntryAlignment", CodeEntryAlignment);
>>>> - set_int("vmPageSize", os::vm_page_size());
>>>> set_int("stackShadowPages", StackShadowPages);
>>>> set_int("hubOffset", oopDesc::klass_offset_in_bytes());
>>>> set_int("markOffset", oopDesc::mark_offset_in_bytes());
>>>>
>>>
>>
>>
More information about the graal-dev
mailing list