[vector] Infinite loop in SIMD binary search

Adam Pocock adam.pocock at oracle.com
Fri Mar 9 21:45:11 UTC 2018


I'm still attempting to debug my binary search, which now doesn't crash, 
but occasionally loops infinitely after it gets deoptimised (assuming 
I'm reading the -XX:+PrintCompilation output correctly).

It's the same code as before, running on the head of the 
vectorIntrinsics branch (changeset:   49340:279620461bde). Running my 
test example which repeatedly performs the same binary search using 8 
lanes on the same input array (a float[8][60]), at some point around 
10,000 iterations the search itself goes into an infinite loop. The 
arrays being searched are 60 elements long, smaller sized arrays don't 
seem to trigger this, but I've not found a specific point that triggers 
it. I may not be giving smaller arrays enough time to hit the same 
compilation point. When it hits the infinite loop with print compilation 
turned on it says:

     832  849       3 
com.oracle.labs.mlrg.topicmodel.util.vector.BinarySearch::binarySearchCDF 
(277 bytes)   made not entrant

or something similar in terms of timestamps, plus a few other methods 
that look unrelated and change with each run.

This behaviour occurs on both release and fastdebug builds on Linux.

What other information can I provide to help diagnose this?

Thanks,

Adam

-- 
Adam Pocock
Principal Member of Technical Staff
Machine Learning Research Group
Oracle Labs, Burlington, MA



More information about the panama-dev mailing list