sol_parser_sdk/logs/
perf_hints.rs1#[inline(always)]
5pub fn likely(condition: bool) -> bool {
6 #[cold]
7 fn cold() {}
8
9 if !condition {
10 cold();
11 }
12 condition
13}
14
15#[inline(always)]
17pub fn unlikely(condition: bool) -> bool {
18 #[cold]
19 fn cold() {}
20
21 if condition {
22 cold();
23 }
24 condition
25}
26
27#[inline(always)]
29pub unsafe fn prefetch_read<T>(ptr: *const T) {
30 #[cfg(target_arch = "x86_64")]
31 {
32 use std::arch::x86_64::{_mm_prefetch, _MM_HINT_T0};
33 _mm_prefetch(ptr as *const i8, _MM_HINT_T0);
34 }
35}
36
37#[inline(always)]
39pub unsafe fn prefetch_write<T>(ptr: *const T) {
40 #[cfg(target_arch = "x86_64")]
41 {
42 use std::arch::x86_64::{_mm_prefetch, _MM_HINT_T1};
43 _mm_prefetch(ptr as *const i8, _MM_HINT_T1);
44 }
45}