8081823: C2 performs unsigned comparison against -1

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Jun 8 16:18:53 UTC 2015


Looks good. Thank you for adding explanation comments.

Thanks,
Vladimir

On 6/8/15 8:38 AM, 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