В самом простом случае машинно-зависимая оптимизация заключается в удалении из сформированной последовательности команд избыточных команд загрузки и чтения.
Целью машинно-зависимой оптимизации является сокращение времени выполнения программы или объема занимаемо памяти. Для оптимизации кода в пределах линейных участков могут использоваться следующие правила:
1. Если сложение является коммутативной операцией, то последовательность команд LOAD OP1 можно заменить LOAD OP2 ADD OP2 => ADD OP1
2. Если умножение является коммутативной операцией, то последовательность команд LOAD OP1 можно заменить LOAD OP2 MULT OP2 => MULT OP1
Эти 2 правила основаны на свойстве коммутативности операций и обеспечивают перестановку местами операндов в соответствующих тетрадах с целью получения пар команд, попадающих под действие третьего правила
3.Последовательность команд вида записи и чтения можно исключить из программы, STORE OP LOAD OP , если ячейка памяти с именем ОР далее не используется или перед использованием вновь определяется командой записи STORE OP. В противном случае из указанной пары команд всегда можно исключить вторую команду. Третье правило означает следующее:
1. Если какой либо операнд не потребуется далее, то его не нужно сохранять в памяти.
2. Если этот операнд уже находится в сумматоре, то его не нужно загружать туда снова.
Существуют и другие правила оптимизации кода, подобно перечисленным.
Их применение позволяет сократить длину полученного объектного кода , а так же уменьшить количество ячеек памяти, используемых для хранения промежуточных результатов. Замечание: При использовании оптим. Правил следует учитывать, что для некоммутативных операций в сумматор должен 1-м загружаться операнд 1-ой операции, т.е. перестановка местами операндов недопустима.
Опубликовал Kest
February 17 2010 21:43:32 ·
0 Комментариев ·
9792 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.