Лекция 07. Выбор команд (Лекции (2015)), страница 4
Описание файла
Файл "Лекция 07. Выбор команд" внутри архива находится в папке "Лекции (2015)". PDF-файл из архива "Лекции (2015)", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
рисунок).(1) Вычисление векторов стоимости.Вычисление вектора стоимости для листа а:Стоимость вычисления a в память, равна нулю, так как а и такнаходится в памяти: С[0] = 0.Стоимость С[1] вычисления а на регистр равна 1, так как аможно загрузить на регистр одной командой LD R0, а.Стоимость С[2] загрузки а на регистр при двух доступныхрегистрах тоже равна 166Таким образом, вектор стоимости в листе a равен (0, 1, 1).7.7Генерация кода алгоритмомдинамического программирования7.7.4 Пример(1) Вычисление векторов стоимости.Векторы стоимости для листьев b c d e вычисляются аналогично.Вычисление вектора стоимости для узла «-» :Оба операнда в памяти С[0] = 3 так как оба операнда нужнозагрузить на регистрыОдин из операндов на регистре С[1] = С[2] = 2Вектор стоимости для для узла «/» вычисляется аналогично.Вектор стоимости для для узла «*» вычисляется аналогично.67Генерация кода алгоритмомдинамического программирования7.77.7.4 Пример(1) Вычисление векторов стоимости.Вычисление вектора стоимости для корня дерева.
Различные вариантывычисления корня(1) (2 свободных регистра) левое поддерево R0 (стоимость 2)(2) (1 свободный регистр) правое поддерево R1 (стоимость 5),(3) команда ADD R0,R0,R1 (стоимость 1). Итого 2 + 5 + 1 = 8(1) правое поддерево M (стоимость 5)(2) (2 свободных регистра) левое поддерево R0 (стоимость 2),(3) команда ADD R0,R0,M(стоимость 1). Итого 5 + 2 + 1 = 8(1) (2 свободных регистра) правое поддерево R1 (стоимость 4)(2) (1 свободный регистр) левое поддерево R0 (стоимость 2),(3) команда ADD R0,R0,R1 (стоимость 1).
Итого 4 + 2 + 1 = 7687.7Генерация кода алгоритмомдинамического программирования7.7.4 Пример(2)Обход дерева и генерация кодаИмея векторы стоимости можно построить код путем обхода дерева.Для рассматриваемого дерева в предположении доступности двухрегистров оптимальный код имеет следующий вид:LDLDDIVMULLDSUBADDR0,R1,R1,R0,R1,R1,R1,cdR1,R0,aR1,R1,eR1bR0//R0//R1//R1//R0//R1//R1//R1=======cdR1R0aR1R1/ e* R1- b+ R069.