Processor support for select operations
aleksey.shipilev at oracle.com
Tue Nov 11 13:27:07 UTC 2014
On 11.11.2014 11:33, Paul Elschot wrote:
> He also pointed to some recent discussions here on the use of bit
> operations to implement an IndexSetIterator, so you may be interested
> because of that.
Notice we are using lookup tables there instead of sophisticated math
there. In fact, we would like to use TZCNT/LZCNT and friends, but it is
hard to do in a cross-platform way from C++ code.
> This was the question, also somewhat off topic here:
> For LUCENE-6040 it would be good to have better processor support for
> selecting the i-th set bit from a 64-bit integer.
I would say this is an offtopic for this list. People on this list are
not hardware people.
> Not too long ago Long.bitCount() was intrinsified in JVM's.
As well as countLeadingZeros/countTrailingZeros, on platforms where
LZCNT/TZCNT are available. You can probably use that to enumerate bits
in a Integer/Long faster.
> I hope something similar will happen to a select(long x, int i)
> method. However, better processor support is needed first.
What method are referring to? We can only safely intrinsify methods with
clear and stable semantics, i.e. those in standard library. I don't see
any, and so I guess the very first thing to do is prototype the Java
function like that in, say, java.lang.Long.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: OpenPGP digital signature
More information about the hotspot-compiler-dev