LLVM

LLVM
Тип компилятор
Разработчики Крис Латтнер[вд], Craig Topper[вд][3] и Simon Pilgrim[вд][3]
Написана на C++[4], Си[5] и язык ассемблера[5]
Операционные системы кроссплатформенность, NetBSD, FreeBSD, OpenBSD, Linux, Миникс 3, Windows и Illumos
Первый выпуск 24 октября 2003[1]
Последняя версия
Репозиторий github.com/llvm/llvm-pro…
Лицензия открытая лицензия Иллинойсского университета[вд][6] и Apache License v2.0 with LLVM Exceptions[вд][7]
Сайт llvm.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

LLVM (изначальная расшифровка — англ. low level virtual machine[8]) — проект программной инфраструктуры для создания компиляторов и сопутствующих им утилит. Состоит из набора компиляторов из языков высокого уровня (так называемых «фронтендов»), системы оптимизации, интерпретации и компиляции в машинный код. В основе инфраструктуры используется RISC-подобная платформонезависимая система кодирования машинных инструкций (байткод LLVM IR), которая представляет собой высокоуровневый ассемблер, с которым работают различные преобразования.

Написан на C++, обеспечивает оптимизации на этапах компиляции, компоновки и исполнения. Изначально в проекте были реализованы компиляторы для языков Си и C++ при помощи фронтенда Clang, позже появились фронтенды для множества языков, в том числе: ActionScript, Ада, C#[9], Common Lisp, Crystal, CUDA, D, Delphi, Dylan, Fortran, Graphical G Programming Language, Halide, Haskell, Java (байткод), JavaScript, Julia, Kotlin, Lua, Objective-C, OpenGL Shading Language, Ruby, Rust, Scala, Swift, Xojo, Zig.

LLVM может создавать машинный код для множества архитектур, в том числе ARM, x86, x86-64, PowerPC, MIPS, SPARC, RISC-V и других (включая GPU от Nvidia и AMD).

Некоторые проекты имеют собственные LLVM-компиляторы (например LLVM-версия GCC), другие используют инфраструктуру LLVM[10], например таков Glasgow Haskell Compiler.

Разработка начата в 2000 году в Университете Иллинойса. К середине 2010-х годов LLVM получил широкое распространение в индустрии: использовался, в том числе, в компаниях Adobe, Apple и Google. В частности, на LLVM основана подсистема OpenGL в Mac OS X 10.5, а iPhone SDK использует препроцессор (фронтенд) GCC с бэкэндом на LLVM. Apple и Google являются одними из основных спонсоров проекта, а один из основных разработчиков — Крис Латтнер — 11 лет проработал в Apple (с 2017 года — в Tesla Motors[11], с 2020 года — в разработчике процессоров и микроконтроллеров на архитектуре RISC-V SiFive[12]).

  1. Латтнер К. The LLVM 1.0 Release is finally available!
  2. LLVM 20.1.0 — 2025.
  3. 1 2 https://github.com/llvm/llvm-project/graphs/contributors?type=a
  4. The llvm Open Source Project on Open Hub: Languages Page — 2006.
  5. 1 2 The llvm Open Source Project on Open Hub: Languages Page (англ.)
  6. License (англ.)
  7. https://github.com/llvm/llvm-project/commit/469bdefd448b76c5adcdd67256e9a44fabf7e027 — 2019.
  8. LLVMdev: The name of LLVM Архивная копия от 3 ноября 2016 на Wayback Machine, Chris Lattner (Apple), 2011-12-21 «„LLVM“ is officially no longer an acronym. The acronym it once expanded too was confusing, and inappropriate almost from day 1.»
  9. LLILC. Дата обращения: 14 апреля 2015. Архивировано 19 мая 2019 года.
  10. Projects built with LLVM (англ.). llvm. Дата обращения: 24 мая 2018. Архивировано 24 мая 2018 года.
  11. Welcome Chris Lattner | Tesla. Дата обращения: 11 января 2017. Архивировано 11 января 2017 года.
  12. Основатель LLVM присоединился к SiFive. Дата обращения: 28 января 2020. Архивировано 28 января 2020 года.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne