GCC не использует inc

Компилятор GCC

$ gcc --version
gcc (GCC) 4.8.2
...

не генерируетinc инструкция по сборке, где это может быть полезно, как в этой программе на C:

int main(int argc, char **argv)
{
    int sum = 0;
    int i;
    for(i = 0; i < 1000000000L; i++)                     <---- that "i++"
        sum += i;
    return sum;
}

Вместо этого он генерируетadd инструкция:

0000000000000000 <main>:
   0:   31 d2                   xor    %edx,%edx
   2:   31 c0                   xor    %eax,%eax
   4:   0f 1f 40 00             nopl   0x0(%rax)
   8:   01 d0                   add    %edx,%eax
   a:   83 c2 01                add    $0x1,%edx         <---- HERE
   d:   81 fa 00 ca 9a 3b       cmp    $0x3b9aca00,%edx
  13:   75 f3                   jne    8 <main+0x8>
  15:   f3 c3                   repz retq 

Почему он это делает?

РЕДАКТИРОВАТЬ: Я использовалgcc -O2 скомпилировать это.gcc -Os действительно генерируетinc инструкция. Не используетinc больше оптимизация скорости, чем оптимизация пространства?

Ответы на вопрос(2)

Ваш ответ на вопрос