Skip to content
LLVM
EntityQ223490· pop 32· linked from 322 articles

Also known as Low Level Virtual Machine, LLVM Project

compilatore per diversi linguaggi di programmazione

Key facts

Software.name
LLVM
Software.logo
LLVM logo.png
Software.logo caption
The LLVM logo, a stylized wyvern
Software.developer
LLVM Developer Group
Software.programming language
C++
Software.operating system
Cross-platform
Software.genre
Compiler
Software.license
Apache License 2.0 with LLVM Exceptions (v9.0.0 or later) Legacy license: UIUC (BSD-style)

via Wikipedia infobox

Source code

This repository contains the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments. The LLVM project has multiple components. The core of the project is itself called "LLVM". This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer. C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM. Other components include: the libc++ C++ standard library, the LLD linker, and more. Consult the Getting Started with LLVM page for information on building and running LLVM. Join the LLVM Discourse forums, Discord chat, LLVM Office Hours or Regular sync-ups. The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.

Excerpt from the source-code README · 2,242 chars · not written by Vinony

Wikidata facts

Designed by
Chris Lattner
Official website
llvm.org
Show 11 more facts
software version identifier
22.1.4
programmed in
assembly language
partially coincident with
Emscripten
social media followers
15100
inception
2003-10-24
operating system
illumos
source code repository URL
github.com/llvm/llvm-project
Commons category
LLVM
official forum URL
discourse.llvm.org
IRC channel URL
irc://irc.oftc.net/llvm
official blog URL
blog.llvm.org
Sources (7)

via Wikidata · CC0

Article · Italiano

LLVM (in precedenza acronimo di Low Level Virtual Machine, macchina virtuale di basso livello) è un'infrastruttura di compilazione, scritta in C++, progettata per l'ottimizzazione di programmi in fase di compilazione, di linking, di esecuzione e di non utilizzo. Il progetto LLVM è stato avviato nel 2000 all'Università dell'Illinois. LLVM attualmente supporta la compilazione di programmi in linguaggio C, C++, Objective C, Ada, Rust, Julia e Fortran, usando dei front-end derivati dalle versioni 4.0.1. e 4.2 del compilatore GNU Compiler Collection (GCC). Un front-end alternativo per linguaggi di programmazione simili al C è attualmente in sviluppo sotto il nome di clang. Usando LLVM, il programmatore può creare una macchina virtuale per linguaggi che la richiedono (ad esempio Java), un compilatore per una architettura specifica e software di ottimizzazione del codice indipendenti dal tipo di linguaggio utilizzato o dalla piattaforma. La rappresentazione intermedia LLVM (IR) è indipendente sia dal linguaggio che dalla architettura; essa si interpone tra il codice sorgente in un dato linguaggio e un generatore di codice per una specifica architettura. LLVM include il supporto all'ottimizzazione del codice inter-procedurale e compilatori sia statici che Just-in-time. Ha diversi componenti che si occupano delle diverse fasi di sviluppo; tra essi, si ricordano i frontend per i linguaggi bytecode di Java, CIL, Python, Julia. Il compilatore just-in-time LLVM è in grado di ottimizzare parti di programma in fase di esecuzione, ed è quindi utile nei casi in cui si voglia valutare l'efficienza di una singola funzione. Grazie a questa sua particolarità, esso viene usato nella pipeline OpenGL di Mac OS X Leopard per supportare alcune funzionalità non presenti a livello hardware. È il compilatore di default dell'IDE Xcode a partire dalla versione 4.2.

Abstract from DBpedia / Wikipedia · CC BY-SA

Gallery (2)