C언어 - 컴파일러 코드 최적화 방법 분석
C언어,ARM / 2017. 1. 21. 23:00
gcc 컴파일러로 프로그램 작성하는 중에,
리스트파일을 확인해보니,
함수가 여기저기 조각 조각 널려있는게 아닌가?
원래 있어야할 위치에 없고, 말그대로, 조각 조각 널려져 있었다.
-O3 옵션을 주었다.
예)
void func1(int a)
{
...
void func1(int a) <<---똑같은 함수명(코드는 다름. 호출변수등에 따라 달라지는듯)
{
...
void func2()
{
...
}
...
결론
===========
최적화 옵션을 주면, inline 표시를 안해도, 컴파일러가, 함수를 적당한 위치에,
함수를 용도에 맞게 조각 조각 내서(또는 통째로), 끼워넣어준다.
이는 함수 호출과 리턴할때 필요한 코드를 없애, 속도를 빠르게하고, 코드사이즈를 작게하는 효과가 있다.
최적화 옵션을 주어 컴파일한다면, 굳이 inline 표시를 안해도 될듯 싶다.
(그러나, inline 옵션을 주면, inline이 꼭 필요한 함수는 거의 대부분(?) inline 적용해줄것이다.)
'C언어,ARM' 카테고리의 다른 글
warning: function declaration isn't a prototype (0) | 2019.04.27 |
---|---|
C언어 - 안전한 코딩 방법 (0) | 2017.01.22 |
gcc 컴파일러 옵션 -iprefix (0) | 2017.01.14 |
__INT_LEAST8_TYPE__ __INT_FAST8_TYPE__ (0) | 2017.01.14 |
C언어 - 배열 값 대입 코드 비교 (0) | 2016.12.16 |