Развертка и оптимизация цикла

Дано код:

for (int i = 0; i < n; ++i) 
{ 
  A(i) ; 
  B(i) ; 
  C(i) ; 
}

И вариант оптимизации:

for (int i = 0; i < (n - 2); i+=3) 
{ 
  A(i) 
  A(i+1) 
  A(i+2) 
  B(i) 
  B(i+1) 
  B(i+2) 
  C(i) 
  C(i+1) 
  C(i+2)
}

Что-то мне непонятно :какой лучше ? Я не вижу ничего, что работало бы быстрее, используя другую версию. Я что-то упустил здесь?

Все, что я вижу, это то, что каждая инструкция зависит от предыдущей инструкции, а это означает, что Мне нужно дождаться завершения предыдущей инструкции, чтобы запустить следующую после...

Спасибо

5
задан JAN 10 April 2012 в 06:56
поделиться