stringtranslate.com

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

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

История

Идея RTL была впервые описана в книге «Проектирование и применение ретаргетингового оптимизатора Peephole» . [2]

ССЗ

В 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 обычно не зависит от исходного языка высокого уровня программы.

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

Ссылки

  1. ^ Махани, Негин (2013-01-16). «Оживление уровня передачи регистра и моделирования уровня транзакции в Ada». ACM SIGAda Ada Letters . 32 (2): 9–16. doi :10.1145/2429574.2429576 . Получено 8 сентября 2024 г.
  2. ^ «Дэвидсон и Фрейзер; Разработка и применение перенацеливаемого оптимизатора глазка; ToPLaS v2(2) 191-202 (апрель 1980 г.)» (PDF) .
  3. ^ Мано, Моррис М. (1992). Архитектура компьютерной системы (3-е изд.). Prentice Hall. стр. 94. ISBN 0131755633.

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