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

       

Уменьшение кол-ва ветвлений


Все три компилятора просматривают код в поисках условных переходов, перепрыгивающих через безусловные (conditional branches over unconditional branches) и оптимизируют их: инвертируют условный переход, перенацеливая его на адрес безусловного перехода, а сам безусловный переход удаляют, уменьшая тем самым количество ветвлений на единицу:

       if (x) a=a*2; else goto lab_1;// двойное

ветвление

if – else

       b=a+1

lab_1: c=a*10



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