Забавный способ сжатия кода регистровых машин.

Feb 20, 2011 01:32

Уменьшение размера кода с помощью команды Эхо.

Вкратце - команда echo содержит ссылку на последовательность команд, которую надо выполнить. Количество команд фиксировано и оно небольшое, поэтому это не вызов процедуры, хотя и очень похоже. Больше напоминает VLIW.

В той статье описывается команда echo с маской команд - в маске задаются выполняемые команды.

Мы можем сделать некое число похожих последовательностей: например, загрузка r1 из разных источников и сложение с r2 - если всего команд 4, то мы можем сделать аж три варианта загрузки r1, выбираемые по маске, всегда оставляя сложение выполняемым. Если каждый вариант используется раза два, то мы сэкономили: исходно было трижды по два по две инструкции, 12 инструкций, а осталось трижды по два по одной инструкции echo и 4 инструкции в блоке - 10 инструкций.

Или даже круче можно сделать. Но я только что это обнаружил, обдумать не успел.

Это дело ещё и ускорение даёт, за счёт меньшего размера кода - 1,1%. ;)

компиляторы, программирование, оптимизация

Previous post Next post
Up