Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker.

Responsive image


LLVM

LLVM
Original author(s)Chris Lattner, Vikram Adve
Developer(s)LLVM Developer Group
Initial release2003 (2003)
Stable release
19.1.2[2] Edit this on Wikidata / 15 October 2024
Repository
Written inC++
Operating systemCross-platform
TypeCompiler
LicenseUIUC (BSD-style)
Apache License 2.0 with LLVM Exceptions (v9.0.0 or later)[3]
Websitewww.llvm.org

LLVM is a set of compiler and toolchain technologies[4] that can be used to develop a frontend for any programming language and a backend for any instruction set architecture. LLVM is designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes.[5] The name LLVM originally stood for Low Level Virtual Machine, though the project has expanded and the name is no longer officially an initialism.

LLVM is written in C++ and is designed for compile-time, link-time, runtime, and "idle-time" optimization. Originally implemented for C and C++, the language-agnostic design of LLVM has since spawned a wide variety of frontends: languages with compilers that use LLVM (or which do not directly use LLVM but can generate compiled programs as LLVM IR) include ActionScript, Ada, C# for .NET,[6][7][8] Common Lisp, PicoLisp, Crystal, CUDA, D, Delphi, Dylan, Forth,[9] Fortran, FreeBASIC, Free Pascal, Halide, Haskell, Java bytecode, Julia, Kotlin, LabVIEW's G language,[10][11] Lua, Objective-C, OpenCL,[12] PostgreSQL's SQL and PLpgSQL,[13] Ruby,[14] Rust,[15] Scala,[16][17] Swift, Xojo, and Zig.

  1. ^ "LLVM Logo". The LLVM Compiler Infrastructure Project.
  2. ^ "Release LLVM 19.1.2 · llvm/llvm-project". Retrieved October 16, 2024.
  3. ^ "LICENSE.TXT". llvm.org. Retrieved September 24, 2019.
  4. ^ "The LLVM Compiler Infrastructure Project". Retrieved March 11, 2016.
  5. ^ "LLVM Language Reference Manual". Retrieved June 9, 2019.
  6. ^ "Announcing LLILC - A new LLVM-based Compiler for .NET". dotnetfoundation.org. Archived from the original on December 12, 2021. Retrieved September 12, 2020.
  7. ^ "Mono LLVM". Retrieved March 10, 2013.
  8. ^ Lattner, Chris (2011). "LLVM". In Brown, Amy; Wilson, Greg (eds.). The Architecture of Open Source Applications.
  9. ^ "MovForth". GitHub. November 28, 2021.
  10. ^ William Wong (May 23, 2017). "What's the Difference Between LabVIEW 2017 and LabVIEW NXG?". Electronic Design.
  11. ^ "NI LabVIEW Compiler: Under the Hood".
  12. ^ Larabel, Michael (April 11, 2018). "Khronos Officially Announces Its LLVM/SPIR-V Translator". Phoronix.com.
  13. ^ "32.1. What is JIT compilation?". PostgreSQL Documentation. November 12, 2020. Retrieved January 25, 2021.
  14. ^ "Features". RubyMotion. Scratchwork Development LLC. Retrieved June 17, 2017. RubyMotion transforms the Ruby source code of your project into ... machine code using a[n] ... ahead-of-time (AOT) compiler, based on LLVM.
  15. ^ "Code Generation - Guide to Rustc Development". rust-lang.org. Retrieved January 4, 2023.
  16. ^ Reedy, Geoff (September 24, 2012). "Compiling Scala to LLVM". St. Louis, Missouri, United States. Retrieved February 19, 2013.
  17. ^ "Scala Native". Retrieved November 26, 2023.

Previous Page Next Page






LLVM Catalan LLVM Czech LLVM Danish LLVM German LLVM EO LLVM Spanish LLVM ET ال‌ال‌وی‌ام FA LLVM Finnish LLVM French

Responsive image

Responsive image