Генерация высококачественного кода для программ на СИ - Computer Innovation Inc.

ОГЛАВЛЕНИЕ

 

Computer Innovation Inc.

 Компилятор C86Plus вырабатывает хороший код со средним уровнем
 оптимизации. Он выполняет базовые приемы оптимизации, такие как свертка
 констант и размножение копий. Однако он не выполняет размножение констант
 для удаления лишних сохранений.
 Хотя компилятор успешно выполняет алгебраические упрощения, он порождает
 лишние инструкции из-за того, что размещает результаты в регистрах, вместо
 того, чтобы помещать их в переменные. Этот эффект проявляется в том, что
 при размещении переменных в регистрах предпринимаются попытки
 переразмещения, так как при выполнении нескольких операторов результаты в
 действительности должны быть присвоены соответствующим переменным.
 Хотя C86Plus успешно справляется со сверткой явных дублирующихся
 присваиваний в одно присваивание, удаление лишних сохранений он выполняет
 неустойчиво. Единственное лишнее присваивание в функции dead_code остается
 единственной командой после того, как компилятор удаляет недостижимый код
 из функции.
 C86Plus - один из нескольких компиляторов рассматриваемого набора, который
 преобразует инициализацию элементов массива из функции проверки
 разворачивания циклов в эквивалентную команду STOSW процессора 80x86 с
 префиксом REP. Однако, что касается разумного уровня оптимизации в других
 областях, то он не смог решить задачу преобразования цепочки переходов в
 функции jump_chain_compression в один переход. Он не выполняет
 существенную оптимизацию циклов.