Техника оптимизации под линуха

       

Ротация ветвлений


Бесконечные циклы с выходом по break могут быть преобразованы в конечные циклы с постусловием. При этом, тело цикла как бы прокручивается, чтобы оператор break переместился на место while(1), а сам while(1) сомкнулся с оператором do и "коллапсировал".

Продемонстрируем это на следующем примере:

do

{

       printf("1й оператор цикла\n");

       if (--a<0) break;

       printf("2й оператор цикла\n");

} while(1);



Содержание раздела