[9] RFR (L): 8152590: C2: @Stable support doesn't always work w/ incremental inlining
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Apr 5 20:07:11 UTC 2016
This looks good.
Thanks,
Vladimir K
On 4/5/16 12:47 PM, Vladimir Ivanov wrote:
> Thanks for review, Vladimir!
>
> Updated version:
> http://cr.openjdk.java.net/~vlivanov/8152590/webrev.01
>>> * check_mismatched_access is moved to type.cpp
>>
>> Type::make_constant_from_field() - is_stable_array and stable_dimension
>> are needed only at the end for make_from_constant() call, move them
>> there.
>
> Done.
>
>> check_mismatched_access() result is used only in assert. Should you put
>> the call and assert under #ifdef ASSERT?
> No, it's a bug in the change: con should be used instead of field_value.
> check_mismatched_access filters out invalid accesses and adjusts the
> value for unsigned loads.
>
> Fixed.
>
> Best regards,
> Vladimir Ivanov
>
> PS: I'll enhance the tests to catch unsigned field load case.
>
>>
>>>
>>>
>>> (2) http://cr.openjdk.java.net/~vlivanov/8152590/webrev.00.01
>>>
>>> Refactored constant folding logic for static final fields and unified
>>> folding logic with instance fields: is_constant() depends only on the
>>> flags and caller should check return value from
>>> ciField::constant_value() for validity (ciConstant.is_valid())
>>>
>>
>> Good.
>>
>>>
>>> (3) http://cr.openjdk.java.net/~vlivanov/8152590/webrev.00.02
>>>
>>> Do constant folding for fields (both static and instance) in
>>> LoadNode::Value.
>>
>> Good.
>>
>>>
>>>
>>> (4) http://cr.openjdk.java.net/~vlivanov/8152590/webrev.00.03
>>>
>>> Mark CallSite::target field as constant.
>>
>> Okay.
>>
>> Thanks,
>> Vladimir
>>
>>>
>>>
>>> Also:
>>>
>>> * fixed test/compiler/unsafe/UnsafeGetStableArrayElement.java
>>>
>>> Testing: JPRT, RBT (pit-hs-comp w/ parse time folding on/off), octane.
>>>
>>> Thanks!
>>>
>>> Best regards,
>>> Vladimir Ivanov
More information about the hotspot-compiler-dev
mailing list