Observations from a simple JMH benchmark
    Vladimir Ivanov 
    vladimir.x.ivanov at oracle.com
       
    Thu Feb 15 18:44:56 UTC 2018
    
    
  
Here's a quick prototype of enhanced array OOB checks:
   http://cr.openjdk.java.net/~vlivanov/panama/vector.oob/webrev.00
-Djdk.incubator.vector.VECTOR_ACCESS_OOB_CHECK:
  =0: no checks
  =1: use Objects.checkFromIndexSize (default)
  =2: enhanced check
+                // vlen > 0, length >=0
+                //
+                // 0 <= i, (i + vlen) <= length
+                //   =>
+                // 0 <= vlen <= length, 0 <= i < (length - vlen);
+                Objects.checkIndex(vlen - 1, length);
+                Objects.checkIndex(ix, length - (vlen - 1));
Best regards,
Vladimir Ivanov
On 2/15/18 3:58 PM, Vladimir Ivanov wrote:
> 
>> I have been playing around with a simple benchmark and JMH (separately 
>> i can get asm hotspots working on the mac now via dtrace!)
> ...
>> Vladimir, i guess this is the kind of thing you were mentioning with 
>> regards to bounds checks?
> 
> Yes.
> 
>> Perhaps there are general optimization possibilities for such bounds 
>> checks. Only Preconditions.checkIndex is currently an intrinsic.
> 
> I proposed some tweaks earlier [1], but haven't done any experiments yet:
> 
>    0 <= i
>    (i + vlen) <= length
> ==>
>    (a) 0 <= i <= (length - vlen)
>    (b) (vlen <= length)
> 
> a - upper bound is loop invariant
> b - loop invariant
> 
> Best regards,
> Vladimir Ivanov
> 
> [1] 
> http://mail.openjdk.java.net/pipermail/panama-dev/2017-December/000889.html
> 
    
    
More information about the panama-dev
mailing list