[9] RFR (XS): 8058828: Wrong ciConstant type for arrays from ConstantPool::_resolved_reference
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Oct 1 18:03:13 UTC 2014
On 10/1/14 10:34 AM, John Rose wrote:
> Reviewed.
>
> On Oct 1, 2014, at 10:15 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>
>> On 10/1/14 4:07 AM, Vladimir Ivanov wrote:
>>> http://cr.openjdk.java.net/~vlivanov/8058828/webrev.00/
>>> https://bugs.openjdk.java.net/browse/JDK-8058828
>>>
>>> There are 2 unrelated problems for the same scenario.
>>>
>>> ciEnv::get_constant_by_index_impl doesn't distinguish T_OBJECT & T_ARRAY cases for constant pool patches in VM anonymous
>>> classes.
>>> The fix is to adjust the type, if a constant value is an array.
>>
>> Should we add check that class is anonymous? Can this be in normal class?
>
> It can't be a normal class at present. When we get array constants, that will change.
>
> I lean towards keeping the assert as-is, and not adding a new test for kind of class. But I would be OK either way.
Thank you John. then lets keep it as it is. Reviewed.
Vladimir
>
> — John
>
>>
>>> ciTypeFlow::StateVector::do_ldc has too strong assertion. Since basic_type = {T_OBJECT|T_ARRAY}, obj->is_array() should
>>> be also expected.
>>
>> This is good.
>>
>> Thanks,
>> Vladimir
>>
>>>
>>> Testing: failing tests, regression test.
>>>
>>> Thanks!
>>>
>>> Best regards,
>>> Vladimir Ivanov
>
More information about the hotspot-compiler-dev
mailing list