Commit 3bcbf9d9 authored by Nathan Bronson's avatar Nathan Bronson Committed by Facebook Github Bot

software prefetching for F14Value iteration

Summary:
When moving from chunk i to i-1 in an F14{Value,Node}{Map,Set}
iteration, this diff prefetches chunk i-2.  This code will never be run
for small maps and sets, since they fit in a single chunk, and it does
not affect the fast-path of intra-chunk operator++.

Reviewed By: shixiao

Differential Revision: D8395569

fbshipit-source-id: 60cace5997222fd7d1fa03ffcee93f439f2fcf03
parent 28a03e7e
...@@ -846,6 +846,7 @@ class F14ItemIter { ...@@ -846,6 +846,7 @@ class F14ItemIter {
} }
--c; --c;
auto last = c->lastOccupied(); auto last = c->lastOccupied();
prefetchAddr(&*c - 1);
if (LIKELY(last.hasIndex())) { if (LIKELY(last.hasIndex())) {
index_ = last.index(); index_ = last.index();
itemPtr_ = std::pointer_traits<ItemPtr>::pointer_to(c->item(index_)); itemPtr_ = std::pointer_traits<ItemPtr>::pointer_to(c->item(index_));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment