Оптимизация компилятора заставляет программу работать медленнее

У меня есть следующий фрагмент кода, который я написал на C. Это довольно просто, поскольку он просто сдвигает биты x для каждого цикла for.

int main() {
   int x = 1;
   for (int i = 0; i > -2; i++) {
      x >> 2;
   }
}

Теперь происходит странная вещь: когда я просто компилирую его без какой-либо оптимизации или с оптимизацией первого уровня ( -O ), он работает нормально ( Я синхронизирую исполняемый файл и его около 1,4 с с -O и 5,4 с без каких-либо оптимизаций.

Теперь, когда я добавляю -O2 или -O3 переключатель для компиляции и времени для результирующего исполняемого файла, он не останавливается (я тестировал до 60 секунд ).

Любые идеи о том, что может вызывает это?

9
задан mtahmed 19 August 2011 в 15:41
поделиться