본문 바로가기
프로그래밍/툴

gcc 내장 함수

by 써드아이 2018. 3. 22.

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