[9] RFR (L): 8152590: C2: @Stable support doesn't always work w/ incremental inlining
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Tue Apr 5 19:47:26 UTC 2016
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