La Red de Conocimientos Pedagógicos - Currículum vitae - Introducción a LLVM IR

Introducción a LLVM IR

Enlace oficial

Hay dos tipos de identificadores en LLVM: identificadores globales e identificadores locales. Los identificadores globales comienzan con el símbolo @ y los identificadores locales con el símbolo %. Además, los identificadores también tienen tres formatos:

Hay dos razones por las que los identificadores comienzan con un prefijo: primero, el compilador no tiene que preocuparse por conflictos con palabras reservadas, segundo, el compilador puede asignar convenientemente palabras sin nombre; Establece una variable temporal en un valor sin considerar los conflictos de la tabla de símbolos.

Otras características de LLVM:

Los programas LLVM se componen de módulos y cada programa de entrada corresponde a un módulo. Los módulos incluyen funciones, variables globales y tablas de símbolos. El vinculador LLVM puede combinar varios módulos.

Los valores globales (variables globales y funciones) están representados por punteros que apuntan a una ubicación específica y tienen un tipo de enlace:

Las declaraciones de funciones solo pueden usar external o extern_weak.

Las convenciones de llamada admitidas por LLVM son las siguientes:

Todas las variables y funciones globales tienen un estilo de visibilidad:

Los símbolos para tipos de enlaces internos o privados deben ser de tipo predeterminado.

He estado usando Rose antes, pero cambiaré a LLVM recientemente. Este artículo es una traducción del documento oficial de LLVM IR. Mi capacidad es limitada. Si hay errores u omisiones, agradezco críticas y correcciones.