Шаблоны оптимизации глазка

Я читал о методах локальной оптимизации компилятора, но я не понимаю, как они реализованы. Идея состоит в том, что оптимизатор каждый раз просматривает «окно» кода и каким-то образом обнаруживает шаблоны и заменяет их более оптимизированными версиями.

Мой вопрос в том, как обнаружить эти закономерности? (предположим, что ваша платформа представляет собой виртуальную машину, которая выводит ассемблерный код для собранного -компьютера, такого как Schocken's Hack ).

Действительно ли люди проверяют код вручную (, используя графы потоков управления, DAG или что-то еще ), а затем собирают все выявленные шаблоны и кодируют их в оптимизаторе? Или есть автоматический способ.

Например, вы загружаете код -в -для -оптимизации в анализаторе, и он выдает указанные шаблоны. Если да, то как можно начать писать?

5
задан Paul Sweatte 27 January 2017 в 17:18
поделиться