За масштабом дії оптимізацію можна поділити на локальну, та глобальну. Локальна оптимізація відбувається у межах базового блоку (групи послідовних команд без розґалуджень і переходів) і полягає у локальних поліпшеннях: видалення коду, який не використовується, пошук тотожних підвиразів, зниження складності підрахунків шляхом заміни на більш дешеві операції (як приклад, степінь замінити множенням), згорання констант () — підрахунок і заміна констант їх значеннями, поліпшення повернення значення локальне розподілення регістрів ()