stringtranslate.com

Зарегистрировать язык перевода

В информатике язык передачи регистров ( RTL ) — это своего рода промежуточное представление (IR), которое очень близко к языку ассемблера , например тому, который используется в компиляторе . Он используется для описания потока данных на уровне передачи регистров архитектуры . В академических статьях и учебниках часто используется форма RTL в качестве архитектурно-нейтрального языка ассемблера. RTL используется как имя конкретного промежуточного представления в нескольких компиляторах, включая GNU Compiler Collection (GCC), Zephyr и европейские проекты компиляторов CerCo и CompCert .

История

Идея, лежащая в основе RTL, была впервые описана в книге « Проектирование и применение перенацеливаемого оптимизатора глазка» . [1]

GCC

В GCC RTL генерируется из представления GIMPLE , преобразуется различными проходами в промежуточном компоненте GCC , а затем преобразуется в язык ассемблера.

RTL GCC обычно записывается в форме, похожей на S-выражение Lisp :

( набор ( рег.:SI 140 ) ( плюс:SI ( рег.:SI 138 ) ( рег.:SI 139 ) )))       

Это выражение побочного эффекта гласит: «Суммируйте содержимое регистра 138 с содержимым регистра 139 и сохраните результат в регистре 140». SI определяет режим доступа для каждого регистра. В примере это «SImode», т.е. «обращаться к регистру как к 32-битному целому числу».

Последовательность генерируемых RTL имеет некоторую зависимость от характеристик процессора, для которого GCC генерирует код. Однако значение RTL более или менее не зависит от цели: обычно можно прочитать и понять часть RTL, не зная, для какого процессора она была сгенерирована. Точно так же значение RTL обычно не зависит от исходного языка высокого уровня программы.

Язык передачи регистров — это система для выражения в символической форме последовательностей микроопераций между регистрами цифрового модуля. Это удобный инструмент для краткого и точного описания внутренней организации цифровых компьютеров. Его также можно использовать для облегчения процесса проектирования цифровых систем. [2]

Рекомендации

  1. ^ «Дэвидсон и Фрейзер; Проектирование и применение перенацеливаемого оптимизатора глазка; ToPLaS v2 (2) 191-202 (апрель 1980 г.)» (PDF) .
  2. ^ Мано, Моррис М. (1992). Архитектура компьютерных систем (3-е изд.). Прентис Холл. п. 94. ИСБН 0131755633.

Внешние ссылки