cpp-ru/ideas

Добавить std::prefetch() функцию

klappdev opened this issue · 0 comments

В последние стандарты активно добавлялись вещи для оптимизации кода.
Например, в C++20 были добавлены атрибуты [[likely]], [[unlikely]].
В C++23 было добавлено атрибут [[assume]], функция std::unreachable().

Одним из таких техник оптимизации является префектичинг кеша процессора.

Во многих компиляторах, это доступно в виде интринсиков.
https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fprefetch
https://clang.llvm.org/docs/LanguageExtensions.html#builtin-prefetch

В boost.context есть уже такая функция.
https://www.boost.org/doc/libs/1_81_0/boost/context/detail/prefetch.hpp

Планируется также добавить в boost.core.
boostorg/core#136

Предлагается добавить в С++ переносимую std::prefetch() функцию.