Compilador de LLVM IR

Archivo: src/compiler_llvm.rs

El backend de LLVM (Ahead-of-Time / Representación Intermedia) de Forja genera código **LLVM IR (Intermediate Representation)** en formato de texto plano sin requerir dependencias externas de librerías nativas (como la API de C++ de LLVM). El código resultante puede ser procesado directamente por herramientas oficiales como llc (el compilador de LLVM) o clang para generar ejecutables optimizados nativos.

Estructura del LlvmBackend

Estructura LlvmBackend
pub struct LlvmBackend &brace;
    out: String,
    vars: HashMap<String, String>,
    funcs: Vec<String>,
    cur_fn: Option<String>,
    lc: u64,
    rc: u64,
    sc: u64,
}

Macros Auxiliares

Desglose de Funciones de LlvmBackend

pub fn new(_ctx: &str, module: &str) -> Self

pub fn compile(&mut self, decls: &[Declaracion]) -> Result<(), String>

pub fn emit_bitcode(&self, path: &str) -> Result<(), String>

pub fn emit_ir(&self) -> String

Helpers de Generación

Generación de Código