[ARM64] GCC: 특정 함수를 최적화하지 않기 - optimize("O0") 옵션

Guillermo Austin Kim|2020년 6월 30일
Posts

[ARM64] GCC: 특정 함수를 최적화하지 않기 - optimize("O0") 옵션

Guillermo Austin Kim|2020년 6월 30일

코드를 작성한 후 실행을 하다보면 가끔 자신이 작성한 함수의 심벌이 사라지거나, 가끔 예상을 벗어나는 동작을 할 때가 있습니다.여러 가지 원인 중 하나가, 컴파일러가 최적화를 하면서 코드를 재배치를 하다가 발생합니다. 이번 포스팅에서는 GCC의 최적화 레벨을 각각의 함수에 지정하는 방법을 소개합니다.결론부터 말씀을 드리면 함수의 선언부에 아래 키워드를 추가하면 됩니다. * __attribute__((optimize("O0"))) 예제 코드와 함께 ARM-GCC 최적화에 대해 알아봅시다. ARM-GCC가 최적화하는 코드 예시 먼저 샘플 코드를 소개합니다.void add_cal_func(void){ unsigned int a, b, c; a = 7; b = 3; c = a + b; prin