Описание тега peephole-optimization

Используйте оптимизацию глазка для вопросов, связанных со специфическими для машины инструкциями по сборке, которые явно встроены в скомпилированный код с целью обеспечения более быстрого пути кода, чем тот, который был создан компилятором.
3 ответа

Уменьшить количество сборок инструкций

Я хочу уменьшить (вручную) количество инструкций из файла сборки Linux. В основном это будет сделано путем поиска предопределенных сокращений в абстрактном синтаксическом дереве. Например: pushl <reg1> popl <reg1> Будут удалены, потому ч…
3 ответа

Компиляторы для начинающих

В рамках группового проекта я пишу компилятор для упрощенного языка. В качестве одной из дополнительных функций я подумал, что я бы добавил оптимизатор глазка, чтобы просмотреть выходной код сборки Intel и оптимизировать его. Наш компилятор сделан н…
0 ответов

Определение оптимизации глазка в GCC

От GCC 17.18 Машинно-ориентированные глазковые оптимизаторы Например, иногда два последовательных insns, связанные по назначению, могут быть объединены, даже если второе, кажется, не использует регистр, вычисленный в первом. Если во второй инструкци…
0 ответов

Что мешает компилятору выполнить оптимизацию глазка на шаблонах выражений?

У меня есть код, указанный ниже: for(auto i =0;i<k;++i) printf("%d\n",(va1+va2-(va1-va2))[i]); где va1 а также va2 два valarray<int> объекты, k это размер va1 а также va2, Я ожидаю, что компилятор оптимизирует printf линия как: printf("%d\n…
2 ответа

Модели оптимизации глазка

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

Почему оптимизация глазка выполняется для ассемблерного кода, а не для ИК-кода?

Я не понимаю, зачем нужна оптимизация глазка? Потому что компилятор достаточно умен, чтобы оптимизировать код? Не могли бы вы привести несколько примеров, где необходима оптимизация глазка?
3 ответа

Более приятный способ сопоставления с образцом окна инструкций по сборке глазка с ржавчиной?

Итак, я пытаюсь реализовать оптимизацию глазка, где я иду отVec<LLStackInstruction> -> Vec<LLStackInstruction>, где возвращаемый список оптимизирован. (LLдля низкого уровня) Наш компилятор смоделирован как абстрактная стековая машина,…