8081823: C2 performs unsigned comparison against -1

Roland Westrelin roland.westrelin at oracle.com
Tue Jun 9 13:04:11 UTC 2015


Thanks for the reviews, Vladimir & Vladimir.

Roland.


> On Jun 8, 2015, at 7:45 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
> 
> Looks good.
> 
> Best regards,
> Vladimir Ivanov
> 
> On 6/8/15 6:38 PM, Roland Westrelin wrote:
>> http://cr.openjdk.java.net/~roland/8081823/webrev.00/
>> 
>> C2 folds:
>> 
>> if (i <= a || i > b) {
>> 
>> as:
>> 
>> if (i - a - 1 >u b - a - 1) {
>> 
>> a == b is allowed and the test becomes then if (i-1 >u -1) { which is never true.
>> 
>> Same is true with if (i > b || i <= a) {
>> 
>> The fix folds it as:
>> 
>> if (i - a - 1 >=u b - a) {
>> 
>> which is always true for a == b
>> 
>> Roland.
>> 



More information about the hotspot-compiler-dev mailing list