RFR (XS): 7181658 CTW: assert(t->meet(t0) == t) failed: Not monotonic
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Tue Jul 10 07:40:12 PDT 2012
http://cr.openjdk.java.net/~vlivanov/7181658/webrev
Small update: I added regression test. I borrowed the code from Apache
Commons Lang library [1].
Best regards,
Vladimir Ivanov
[1]
http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html
On 07/07/12 00:24, Vladimir Ivanov wrote:
> Vladimir, Chris, thank you.
>
> Best regards,
> Vladimir Ivanov
>
>
> On 7/6/12 9:46 PM, Christian Thalinger wrote:
>> Looks good. Except the extra spaces:
>>
>> + in(1)->in(2)->eqv_uncast( in(2) ));
>>
>> -- Chris
>>
>> On Jul 6, 2012, at 6:09 AM, Vladimir Ivanov wrote:
>>
>>> Vladimir,
>>>
>>> Thanks for the review.
>>>
>>> Here's updated version:
>>> http://cr.openjdk.java.net/~vlivanov/7181658/webrev.01
>>>
>>> Best regards,
>>> Vladimir Ivanov
>>>
>>> On 7/6/12 2:40 AM, Vladimir Kozlov wrote:
>>>> Thank you, Vladimir, for taking and fixing this bug.
>>>>
>>>> Could you factor the condition into a separate function to be used in
>>>> both places?
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> Vladimir Ivanov wrote:
>>>>> http://cr.openjdk.java.net/~vlivanov/7181658/webrev.00
>>>>>
>>>>> 7181658 CTW: assert(t->meet(t0) == t) failed: Not monotonic
>>>>>
>>>>> One of node equivalence checks in CmpUNode::sub doesn't respect
>>>>> ConstraintCast nodes, which could lead to missed optimization
>>>>> opportunities. In this particular case it also breaks monotonicity
>>>>> assumption of CCP analysis due to a discrepancy in logic between 2
>>>>> cases.
>>>>>
>>>>> I haven't been able to come up with a reduced regression test due to
>>>>> some tricky symbol resolution orderings which provoke the bug - even
>>>>> when the method bytecode is effectively the same! :-)
>>>>>
>>>>> Testing: failing test, CTW (full testlist)
>>>>>
>>>>> Best regards,
>>>>> Vladimir Ivanov
>>>>>
>>>
>>
>
More information about the hotspot-compiler-dev
mailing list