RFR: 8174957: [JVMCI] jaotc is broken in Xcomp mode

Doug Simon doug.simon at oracle.com
Wed Feb 15 16:46:30 UTC 2017


Ok, I’ve updated the webrev.

I assume the missing change to DataBuilder would have been caught by AOT specific tests in jprt?

-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