
[GCC] __builtin_constant_p 정리
GCC에서는 다양한 builtin function을 제공하는데 이번 포스트에서 다룰 것은 __builtin_constant_p 함수이다. 해당 함수는 아래와 같이 Linux Kernel kmalloc에서 사용하는 모습을 살펴볼 수 있다. 얼핏 봐서는 왜 이 함수를 사용하는지 알기 힘들기 때문에 몇 가지 간단한 예제를 통해 구체적으로 사용 예를 살펴보도록 하겠다. <include/linux/slab.h> GCC 문서에 따르면 "해당 함수는 함수의 인자가 compile time에 결정되는 값인지, 즉 상수인지 판단한다, 따라서 GCC는 constant folding을 수행할 수 있다." 라고 한다. 설명에 따르면 constant folding이라는 term이 나온다. 따라서 해당 용어가 어떤 의미를 가지고 있는지 먼저 살펴보도록 한다. Constant folding Constant folding은 modern compiler에서 사용하는 최적화 기능이