adapted post-#211

This commit is contained in:
joaquintides
2023-09-29 18:14:44 +02:00
parent ddc77ebdc9
commit 1a2e5c8ffe

View File

@ -578,27 +578,27 @@ public:
for(std::size_t i=0;i<M;++i){ for(std::size_t i=0;i<M;++i){
hashes[i]=this->hash_for(keys[i]); hashes[i]=this->hash_for(keys[i]);
auto pos=this->position_for(hashes[i]); auto pos=this->position_for(hashes[i]);
BOOST_UNORDERED_PREFETCH(this->arrays.groups+pos); BOOST_UNORDERED_PREFETCH(this->arrays.groups()+pos);
} }
for(std::size_t i=0;i<M;++i){ for(std::size_t i=0;i<M;++i){
auto hash=hashes[i]; auto hash=hashes[i];
auto pos=this->position_for(hash); auto pos=this->position_for(hash);
masks[i]=(this->arrays.groups+pos)->match(hash); masks[i]=(this->arrays.groups()+pos)->match(hash);
if(masks[i]){ if(masks[i]){
BOOST_UNORDERED_PREFETCH(this->arrays.group_accesses+pos); BOOST_UNORDERED_PREFETCH(this->arrays.group_accesses()+pos);
BOOST_UNORDERED_PREFETCH_ELEMENTS(this->arrays.elements+pos*N,N); BOOST_UNORDERED_PREFETCH_ELEMENTS(this->arrays.elements()+pos*N,N);
} }
} }
for(std::size_t i=0;i<M;++i){ for(std::size_t i=0;i<M;++i){
prober pb(this->position_for(hashes[i])); prober pb(this->position_for(hashes[i]));
auto pos=pb.get(); auto pos=pb.get();
auto pg=this->arrays.groups+pos; auto pg=this->arrays.groups()+pos;
auto mask=masks[i]; auto mask=masks[i];
element_type *p; element_type *p;
if(mask){ if(mask){
p=this->arrays.elements+pos*N; p=this->arrays.elements()+pos*N;
goto post_prefetch; goto post_prefetch;
} }
else{ else{
@ -606,10 +606,10 @@ public:
} }
do{ do{
pos=pb.get(); pos=pb.get();
pg=this->arrays.groups+pos; pg=this->arrays.groups()+pos;
mask=pg->match(hashes[i]); mask=pg->match(hashes[i]);
if(mask){ if(mask){
p=this->arrays.elements+pos*N; p=this->arrays.elements()+pos*N;
BOOST_UNORDERED_PREFETCH_ELEMENTS(p,N); BOOST_UNORDERED_PREFETCH_ELEMENTS(p,N);
post_prefetch: post_prefetch:
auto lck=access(group_shared{},pos); auto lck=access(group_shared{},pos);