Im Jahr 2000 begannen Vikram Adve und Chris Lattner an der University of Illinois at Urbana-Champaign ein Forschungsprojekt zur dynamischen Kompilierung. Das CGO-Papier von 2004 – „LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation“ – beschrieb eine typisierte Zwischendarstellung plus ein Compiler-Framework, dessen Kombination von Fähigkeiten nach eigener Aussage kein bestehender Kompilierungsansatz bot.

Der entscheidende Schritt war Modularität plus Offenheit. Statt eines monolithischen Compilers ist LLVM eine bibliotheksbasierte Infrastruktur: Frontends übersetzen Quellcode in LLVM IR, Backends wandeln diese IR in Maschinencode um, und die Optimierungsdurchläufe werden dazwischen geteilt. Als freie Open-Source-Software veröffentlicht, ließ es sich ohne rechtliche Reibung in kommerzielle Produkte einbetten.

Die Übernahme folgte der Ökonomie. Apple stellte Lattner 2005 ein und machte LLVM integralen Bestandteil von Xcode für macOS und iOS; Intel beschreibt LLVM als Compiler-Infrastruktur in Produktionsqualität, deren Komponenten die eigenen Compiler wiederverwenden, wobei sie zur Portabilität auf LLVM IR abzielen. Weil die Mitte geteilt wurde, hörte das Ökosystem auf, sie neu zu bauen.

Compiler als wiederverwendbare Bibliotheken bauen, nicht als Monolithen

Die typisierte IR trennt Frontends von Backends, sodass eine Infrastruktur allen Sprachen dient.

Eine permissive Lizenz erlaubt Unternehmen, sie ohne rechtliche Reibung einzubetten.

Bibliothekskomponenten bedeuten, dass Anbieter getesteten Code wiederverwenden, statt ihn neu zu schreiben.

Apples Übernahme brachte es in die Standard-Toolchain von Millionen Entwicklern.

Gewinne das Ökosystem, indem du die Mitte besitzt: Ein permissiv lizenzierter, wiederverwendbarer Compiler-Kern bedeutet, dass jedes Sprach-Frontend und jedes Maschinen-Backend dieselbe getestete Optimierungs-Engine teilen.

LLVM und sein Clang-Frontend wurden zum Standard-Compiler-Stack für Apple-Plattformen und für Sprachen von Rust bis Swift, während Intels oneAPI-Compiler darauf aufbauen – die wiederverwendbare Mitte gewann das Compiler-Ökosystem. Neue Sprachprojekte setzen heute routinemäßig LLVM als ihr Ziel voraus.

DEN BELEGEN FOLGEN

Die Quellen

  1. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation (CGO'04) LLVM Project · llvm.org
  2. Get to Know LLVM Intel · intel.com
  3. LLVM Wikipedia · en.wikipedia.org