8066103: C2's range check smearing allows out of bound array accesses
Roland Westrelin
roland.westrelin at oracle.com
Tue Dec 9 19:58:25 UTC 2014
Thanks.
Roland.
> On Dec 9, 2014, at 7:59 PM, John Rose <john.r.rose at oracle.com> wrote:
>
> Thumbs up. — John
>
>> On Dec 9, 2014, at 10:04 AM, Roland Westrelin <roland.westrelin at oracle.com> wrote:
>>
>>>>> That's good; let's do it that way!
>>>>>
>>>>> Final suggestion (really): Add some more test cases, containing duplicate array indexes, to exercise the "local" logic.
>>>>
>>>> Thanks John. I’ll add some test cases. Do you want to see another webrev with test cases?
>>>
>>> I'd like to look at it, so please update the webrev, but you can proceed with a thumbs up from me as a reviewer no matter what.
>>
>> Here is a new webrev for the change I intend to push today:
>>
>> http://cr.openjdk.java.net/~roland/8066103/webrev.04/
>>
>> It has more test cases and the previous change had some leftover code:
>>
>> 939 if (rc0.ctl->in(0)->in(1) == in(1)) {
>> 940 // If we match the test exactly, then the top test covers
>>
>> 941 // both our lower and upper bounds. Valid only if there's no
>> 942 // other range check between us and the top test: for all we
>> 943 // know this range check was widened and accesses that
>> 944 // depend on it also depend on the previous range checks to
>> 945 // be correct.
>>
>> 946 prev_dom = rc0.ctl;
>> 947 } else {
>>
>> Roland.
>
More information about the hotspot-compiler-dev
mailing list