LLVM

Que es LLVM?

Que es LLVM?

¿Qué es LLVM y por qué es útil??

Múltiples mini-proyectos trabajan bajo el paraguas de LLVM. Los miniproyectos tratan principalmente de tecnologías de compilación. Parece haber cierta confusión con respecto al nombre de LLVM. La gente asume erróneamente que está relacionado con máquinas virtuales. No hay conexión. El término LLVM no significa nada. Es solo un nombre que se usó al comienzo del proyecto.

El proyecto LLVM se opera bajo la licencia de estilo BSD "UIUC". El proyecto se originó en la Universidad de Illinois. Desde entonces ha ganado popularidad y se ha utilizado para una gran variedad de proyectos. Es especialmente popular en los círculos académicos. El objetivo principal del proyecto es proporcionar una compilación estática y dinámica basada en SSA de varios lenguajes de programación.

Aquí están el mini-proyecto de LLVM:

  1. Núcleo LLVM: Las bibliotecas centrales brindan soporte para la generación de código y optimizador para CPU. LLVM IR (Representación intermedia) proporciona la base para las bibliotecas. La comunidad ha hecho un buen trabajo al documentar el LLVM Core. Por lo tanto, puede usar fácilmente estas bibliotecas para crear su nuevo lenguaje de programación o crear un puerto de un compilador existente. Si está buscando aventurarse en estos territorios, LLVM Core es un buen lugar para comenzar.
  1. Sonido metálico: Es un compilador que es tres veces más rápido que GCC. Se dirige a C, C ++ y Objective-C. Los errores y advertencias de Clang son más fáciles de entender. También tiene una herramienta analizadora estática. La propia herramienta del analizador estático se construye utilizando el compilador de Clang.
  1. LLDB: Es un depurador. Es más rápido y más eficiente que GDB. El depurador se construye usando Clang y LLVM Core.
  1. libc ++ y libc ++ ABI: Mejor implementación de C ++ STD.
  1. compilador-rt: Proporciona soporte para código de bajo nivel. También tiene bibliotecas de tiempos de ejecución para pruebas dinámicas.
  1. OpenMP: Open Multi-Processing (OpenMP) es una API para ayudar con el multiproceso. Este proyecto es compatible con el tiempo de ejecución nativo de OpenMP que se utilizará con Clang.
  1. Polly: En el mundo LLVM, es un optimizador de bucle y localidad de datos de alto nivel. Optimiza los patrones de acceso a la memoria de los programas.
  1. libclc: Una biblioteca para OpenCL.
  1. klee: Es una máquina virtual simbólica. Puede usar klee para recorrer todas las rutas dinámicas en un programa para encontrar problemas. La máquina puede producir casos de prueba automatizados.
  1. SAFECODE: Es un compilador para C / C ++ para garantizar la seguridad de la memoria. Es una gran herramienta para que la exploren los expertos en ciberseguridad. Puede ayudar a detectar errores de seguridad de la memoria.
  1. lld: Está construyendo un enlazador para trabajar con Clang y LLVM.

LLVM tiene la reputación de crear binarios más limpios que GCC. Además, LLVM tiene proyectos externos que se pueden usar para compilar Python, Haskell, PHP, LUA, Ruby y otros lenguajes. LLVM se considera una solución versátil, flexible y reutilizable. Por lo que está ganando popularidad en la comunidad de desarrollo. Se utiliza como compiladores JIT para lenguajes embebidos. LLVM también se está utilizando para supercomputadoras. El amplio apoyo de la comunidad de desarrolladores lo convierte en una herramienta sólida.

Estudio adicional:

Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...