Registra lingua di trasferimento - Register transfer language

In informatica , il linguaggio di trasferimento dei registri ( RTL ) è un tipo di codice oggetto, una sorta di rappresentazione intermedia (IR) molto simile al linguaggio assembly , come quello utilizzato in un compilatore . Viene utilizzato per descrivere il flusso di dati a livello di trasferimento di registro di un'architettura . I documenti accademici ei libri di testo spesso usano una forma di RTL come linguaggio assembly neutro dall'architettura. RTL è usato come nome di una specifica rappresentazione intermedia in diversi compilatori, inclusi GNU Compiler Collection (GCC), Zephyr e i progetti di compilazione europei CerCo e CompCert .

Storia

L'idea alla base di RTL è stata descritta per la prima volta in The Design and Application of a Retargetable Peephole Optimizer .

GCC

In GCC, RTL viene generato dalla rappresentazione di GIMPLE , trasformato da vari passaggi nella parte intermedia di GCC e quindi convertito in linguaggio assembly.

L'RTL di GCC è solitamente scritto in una forma che assomiglia a un'espressione S Lisp :

(set (reg:SI 140)
     (plus:SI (reg:SI 138)
              (reg:SI 139)))

Questa espressione di effetto collaterale dice "somma il contenuto del registro 138 con il contenuto del registro 139 e memorizza il risultato nel registro 140". Il SI specifica la modalità di accesso per ogni registro. Nell'esempio è "SImode", cioè "accedi al registro come intero a 32 bit".

La sequenza di RTL generata ha una certa dipendenza dalle caratteristiche del processore per cui GCC sta generando il codice. Tuttavia, il significato dell'RTL è più o meno indipendente dal target: normalmente sarebbe possibile leggere e comprendere un pezzo di RTL senza sapere per quale processore è stato generato. Allo stesso modo, il significato dell'RTL di solito non dipende dalla lingua originale di alto livello del programma.

Una lingua di trasferimento dei registri è un sistema per esprimere in forma simbolica le sequenze di microoperazioni tra i registri di un modulo digitale. È un comodo strumento per descrivere l'organizzazione interna dei computer digitali in modo conciso e preciso. Può anche essere utilizzato per facilitare il processo di progettazione di sistemi digitali.

Riferimenti

link esterno