Skip to content

Commit d0d9a3f

Browse files
committed
Extra cfg filtering to keep inline functions as small as possible
1 parent 8e34f34 commit d0d9a3f

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

sa-index/src/array/mod.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,16 @@ impl SuffixArray {
8787
/// Issues a non-blocking hardware prefetch hint for the cache line holding SA entry `index`.
8888
#[inline]
8989
pub fn prefetch_sa_index(&self, index: usize) {
90+
#[cfg(feature = "mmap")]
91+
if let SuffixArray::MmapBacked { mmap, data_offset, bits_per_value, .. } = self {
92+
let byte_offset = data_offset + (index * bits_per_value) / 8;
93+
if byte_offset < mmap.len() {
94+
let ptr: *const u8 = &mmap[byte_offset];
95+
prefetch::prefetch_read(ptr);
96+
}
97+
}
98+
99+
#[cfg(not(feature = "mmap"))]
90100
match self {
91101
SuffixArray::Original(sa, _) => {
92102
if index < sa.len() {
@@ -104,14 +114,6 @@ impl SuffixArray {
104114
prefetch::prefetch_read(ptr);
105115
}
106116
}
107-
#[cfg(feature = "mmap")]
108-
SuffixArray::MmapBacked { mmap, data_offset, bits_per_value, .. } => {
109-
let byte_offset = data_offset + (index * bits_per_value) / 8;
110-
if byte_offset < mmap.len() {
111-
let ptr: *const u8 = &mmap[byte_offset];
112-
prefetch::prefetch_read(ptr);
113-
}
114-
}
115117
}
116118
}
117119

0 commit comments

Comments
 (0)