컴파일러 최적화 옵션에 따른 어셈블리 코드

2019. 5. 11. 22:03임베디드/ATmega128

while (1) 

{

int i, j;

     PORTA = 0xff;

    for(i=0; i<1000; i++) for(j=0; j<1000; j++) {}

     PORTA = 0x00;

    for(i=0; i<1000; i++) for(j=0; j<1000; j++) {}

}


1. -O0, volatile로 변수를 선언할 때

- 두 for loop 모두 26줄의 asm 생성

2 -O1

 - 두 for loop 모두 4줄의 asm을 생성

3 -O2

- 마지막 for loop만 5줄의 asm 생성

4 -O3

- O2와 같다

5. -Os

- O3와 같다


https://cafe.naver.com/lazydigital/11062