Меню

Главная
Случайная статья
Настройки
Инверсия цикла
Материал из https://ru.wikipedia.org

Инверсия цикла (англ. Loop inversion) — оптимизация компилятора и трансформация цикла, в ходе которой While-цикл[англ.] заменяется на оператор ветвления, содержащий Do-While-цикл[англ.]. При правильном использовании данная оптимизация повышает производительность за счет конвейеризации.

Пример на С

Например, следующий код:
  int i, a[100];
  i = 0;
  while (i < 100) {
    a[i] = 0;
    i++;
  }


в результате применения оптимизации преобразовывается в:
  int i, a[100];
  i = 0;
  if (i < 100) {
    do {
      a[i] = 0;
      i++;
    } while (i < 100);
  }


Примечания

Литература
Downgrade Counter