GCC로 분기 예측 사용자 정의
질문: GCC가 특정 방향으로 분기 예측 결과를 강제하도록 지시할 수 있습니까? Intel 아키텍처?
답변:
예, GCC는 분기 예측을 위한 코드 생성을 안내하기 위해 __builtin_expect 함수를 제공합니다. 이 함수는 exp(조건 표현식)와 c(예상 결과)라는 두 가지 인수를 사용합니다.
GCC에 특정 분기 경로를 true로 일관되게 예측하도록 지시하려면 다음 구문을 사용하세요.
<code class="c">if (__builtin_expect(exp, 1))</code>
예를 들어 제공된 코드 조각에 다음을 추가할 수 있습니다.
<code class="c">if (__builtin_expect(normal, 1))</code>
또한 구문을 단순화하기 위해 사용자 정의 매크로를 정의할 수 있습니다.
<code class="c">#define likely(x) __builtin_expect (!!(x), 1) #define unlikely(x) __builtin_expect (!!(x), 0)</code>
고려 사항:
위 내용은 인텔 아키텍처에서 GCC 강제 분기 예측 결과가 가능합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!