include/linux/compiler.h
#define likely(x) __builtin_expect((x), 1)
#define unlikely(x) __builtin_expect((x), 0)
likely() 는 true가 될 확률이 높은 조건문에서 성능을 높이고자 사용한다.
unlikely()는 false가 될 확률이 높은 조건문에서 성능을 높이고자 사용한다.
__builtin_except()
컴파일러에게 branch prediction 정보를 주고자하는 함수이다.
자주 사용되지 않는 문장을 함수의 뒷 부분에 배치하여 메모리 캐시나 branch prediction cache에 영향을 주어 성능을 최적하 시키려고 할 때 사용한다.
likely/unlikely와는 다르게 userspace에서도 사용할 수 있다.
__builtin_constant_p()
인수가 컴파일 시 상수로 알려져 있으면 정수 1을 반환하고 그렇지 않으면 0을 반환한다.
u-boot의 vsprintf를 사용해보려고 흐름을 따라가다가 나온 내용임!!!
'프로그래밍 > 툴' 카테고리의 다른 글
vscode에서 platformio 라이브러리 추가 (0) | 2021.01.02 |
---|---|
[git] 리모트/브랜치 관련 내용 (0) | 2020.04.21 |
gdb를 이용한 리모트 디버깅 (0) | 2015.04.15 |
Makefile 만들기 (0) | 2014.06.24 |
gcc 툴체인 옵션 간단 정리 (0) | 2014.04.16 |