Interested Article - Инверсия цикла

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

Пример на С

Например, следующий код:

  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);
  }

Примечания

Литература

Источник —

Same as Инверсия цикла