mikemccand opened a new issue, #12476:
URL: https://github.com/apache/lucene/issues/12476

   ### Description
   
   @fulmicoton (Tantivy creator) reached out to me after our [fun discussion 
about how to tap into branchless CPU instructions (CMOVcc on 
x86-64)](https://markmail.org/message/rqktbp7qgzegvdti) from way up a in 
javaland far above the bare metal.
   
   Because Lucene (and Tantivy) encode postings in blocks of 128 docids 
(+freqs) at once, when skipping, after using the skiplist to find the block 
that may or may not contain the target doc, there is inevitably a "within 
block" scan (of up to 128 docs) that is needed to find it. 
   
   @fulmicoton pointed out that the [linear scan phase of Lucene's 
skipping](https://t.co/kg7JZ8ICEH) could maybe be rewritten "just so" in a way 
that Hotspot would recognize it and would compile to CMOVcc.  We could turn on 
"print assembly" from Hotspot to iterate until it does or does not produce 
CMOVcc and then measure which way is "typically" more performant.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to