RFR: 8174957: [JVMCI] jaotc is broken in Xcomp mode
Igor Veresov
igor.veresov at oracle.com
Wed Feb 15 17:05:18 UTC 2017
> On Feb 15, 2017, at 8:46 AM, Doug Simon <doug.simon at oracle.com> wrote:
>
> Ok, I’ve updated the webrev.
Thanks, looks good!
>
> I assume the missing change to DataBuilder would have been caught by AOT specific tests in jprt?
>
Yes, I think it would’ve failed building on linux x64.
igor
> -Doug
>
>> On 15 Feb 2017, at 17:34, Igor Veresov <igor.veresov at oracle.com> wrote:
>>
>> Sorry, it would also need a cast of course..
>>
>> diff --git a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/DataBuilder.java b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/DataBuilder.java
>> --- a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/DataBuilder.java
>> +++ b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/DataBuilder.java
>> @@ -70,8 +70,8 @@
>> */
>> private void fillVMAddresses(HotSpotVMConfigStore config) {
>> for (VMField vmField : config.getFields().values()) {
>> - if (vmField.value != null) {
>> - final long address = vmField.value;
>> + if (vmField.value != null && vmField.value instanceof Long) {
>> + final long address = (Long) vmField.value;
>> String value = vmField.name;
>> /*
>> * Some fields don't contain addresses but integer values. At least don't add zero
>>
>>
>>> On Feb 15, 2017, at 8:32 AM, Igor Veresov <igor.veresov at oracle.com> wrote:
>>>
>>> Looks good, but I think the following bit would also be required to fix this particular issue:
>>>
>>> diff --git a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/DataBuilder.java b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/DataBuilder.java
>>> --- a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/DataBuilder.java
>>> +++ b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/DataBuilder.java
>>> @@ -70,7 +70,7 @@
>>> */
>>> private void fillVMAddresses(HotSpotVMConfigStore config) {
>>> for (VMField vmField : config.getFields().values()) {
>>> - if (vmField.value != null) {
>>> + if (vmField.value != null && vmField.value instanceof Long) {
>>> final long address = vmField.value;
>>> String value = vmField.name;
>>> /*
>>>
>>> Thanks,
>>> igor
>>>
>>>> On Feb 15, 2017, at 2:24 AM, Doug Simon <doug.simon at oracle.com> wrote:
>>>>
>>>> Please review this fix for a bug introduced by JDK-8173912. The value written by readConfiguation (in jvmciCompilerToVM.cpp) to VMField.value may now be a Boolean. As such, the type of VMField.value must be Object.
>>>>
>>>> https://bugs.openjdk.java.net/browse/JDK-8174957
>>>> http://cr.openjdk.java.net/~dnsimon/8174957/webrev/
>>>>
>>>> -Doug
>>>
>>
>
More information about the hotspot-compiler-dev
mailing list