Оптимізатор коду на асемблері

pyCompiler.utils.optimizer.optimize(pseudo)
Функція, відповідальна за оптимізацію
Parameters:pseudo – список операторів псевдо-асемблерного коду
Return type:оптимізований список операторів псевдо-асемблерного коду

Оптимізація проводиться в кілька ітерацій, за замовчуванням код подходить оптимізатори два рази.

Оптимізатори - функції, які оптимізують кожна свою конструкцію.

Оптимізатор роботи зі стеком

pyCompiler.utils.optimizer.optimize_push_pop(pseudo)

Видаляє конструкції виду:

push eax
pop eax

Такі конструкції з’являються після генерації коду.

Оптимізатор подвійного копіювання

pyCompiler.utils.optimizer.optimize_mov(pseudo)

Оптимізує конструкції вигляду:

mov eax, 5
mov ebx, eax

у:

mov ebx, 5

Такі конструкції з’являються після генерації коду.

Оптимізатор подвійного копіювання для стеку

pyCompiler.utils.optimizer.optimize_mov_push(pseudo)

Оптимізує конструкції вигляду:

mov eax, 5
push eax

у:

push dword 5

Такі конструкції з’являються після генерації коду.

Оптимізатор копіювання самого в себе

pyCompiler.utils.optimizer.optimize_mov_to_self(pseudo)

Видаляє строки вигляду:

mov eax,eax

Такі конструкції з’являються внаслідок роботи інших оптимізацій.