Registrar idioma de transferencia
En informática, el lenguaje de transferencia de registros (RTL) es una especie de representación intermedia (IR) muy cercana al lenguaje ensamblador, como el que se utiliza en un compilador. Se utiliza para describir el flujo de datos en el nivel de transferencia de registros de una arquitectura. Los documentos académicos y los libros de texto a menudo usan una forma de RTL como lenguaje ensamblador de arquitectura neutral. RTL se usa como el nombre de una representación intermedia específica en varios compiladores, incluidos GNU Compiler Collection (GCC), Zephyr y los proyectos de compiladores europeos CerCo y CompCert.
Historia
La idea detrás de RTL se describió por primera vez en El diseño y la aplicación de un optimizador de mirilla redireccionable.
CCG
En GCC, RTL se genera a partir de la representación de GIMPLE, se transforma mediante varias pasadas en el extremo medio de GCC y luego se convierte a lenguaje ensamblador.
La RTL de GCC generalmente se escribe en una forma que parece una expresión S de Lisp:
()set ()reg:SI 140) ()más:SI ()reg:SI 138) ()reg:SI 139))
Esta expresión de efecto secundario dice "sumar el contenido del registro 138 con el contenido del registro 139 y almacenar el resultado en el registro 140". El SI especifica el modo de acceso para cada registro. En el ejemplo, es "SImode", es decir, "accede al registro como un entero de 32 bits".
La secuencia de RTL generada depende en cierta medida de las características del procesador para el que GCC genera código. Sin embargo, el significado de RTL es más o menos independiente del objetivo: por lo general, sería posible leer y comprender una parte de RTL sin saber para qué procesador se generó. Del mismo modo, el significado de RTL no suele depender del lenguaje de alto nivel original del programa.
Un lenguaje de transferencia de registros es un sistema para expresar en forma simbólica las secuencias de microoperaciones entre los registros de un módulo digital. Es una herramienta conveniente para describir la organización interna de las computadoras digitales de manera concisa y precisa. También se puede utilizar para facilitar el proceso de diseño de sistemas digitales.
Contenido relacionado
Trazarruta
KA9Q
Piedra seca