Оптимизация ветки для известного более распространенного пути
Пожалуйста, рассмотрите следующий фрагмент кода:
void error_handling();
bool method_impl();
bool method()
{
const bool res = method_impl();
if (res == false) {
error_handling();
return false;
}
return true;
}
я знаюmethod_impl()
вернусьtrue
99,999% (да, три знака после запятой), но мой компилятор этого не делает.method()
частично критично с точки зрения затрат времени.
method()
(и сделать его менее читаемым), чтобы гарантировать, что скачок может произойти только тогда, когдаmethod_impl()
возвращаетсяfalse
? Если да, то как?Должен ли я позволить компилятору сделать работу за меня?Должен ли я позволить прогнозу ветвления моего процессора сделать работу за меня?