Mehrere Forscher überlegen in einem gemeinsamen Paper, wie sich der Bau von Intermediate Representations (IR) für domänenspezifische Programmiersprachen vereinfachen lässt.
Den amerikanischen Informatiker Chris Lattner kennen einige womöglich von seiner Arbeit am Compiler LLVM. Er hat bereits für einige Big-Tech-Unternehmen gearbeitet, darunter Apple, Google und Tesla.
Nun stellt er zusammen mit anderen Forschern (mehrheitlich Google-Mitarbeiter) ein Paper zur Compiler IR der Zukunft vor. Das Paper wartet auf Arxiv und trägt den Titel “MLIR: A Compiler Infrastructure for the End of Moore’s Law”. Ziel des neuen Ansatzes sei es, eine wiederverwendbare und erweiterbare Intermediate Representation für Compiler-Infrastruktur zu bauen.
Flexiblere IR gesucht
Der Anstoß für das Paper: Zwar sei die LLVM Intermediate Representation (IR) bereits ein wertvoller Ansatz, der Sprachen wie C, C++ und Java abdecke. Allerdings lassen sich viele sprachspezifische Eigenheiten mit LLVM nur schlecht abbilden. Daher entwickeln Die Entwickler von Sprachen wie Swift, Rust oder Fortran gern eigene IRs, um sprach- und bibliotheken-spezifische Probleme zu modellieren. Der Aufbau solcher IRs brauche aber Zeit und Ressourcen, die Umsetzung habe am Ende oft nicht die optimale Qualität, weil das keine Priorität besitze. MLIR ist also auch ein Ansatz, dieses Problem in den Griff zu bekommen.
MLIR soll Software- und Hardware-Fragmentierung adressieren und die Kosten für den Bau eines Domänen-spezifischen Compilers signifikant senken. Dafür will MLIR das Design und die Implementierung von Code-Generatoren, Übersetzern und Optimierern senken. Das soll auf verschiedenen Abstraktionsebenen passieren, über verschiedene Anwendungs-Domänen, Hardware-Plattformen und Runtimes hinweg. Das Paper diskutiert dabei nicht nur die Compiler-Infrastruktur selbst, sondern will auch als Denkanstoß für die zukünftige Arbeit an Compilern dienen. Daneben soll es auch in der Lehre Platz finden.
Batteries included
Konkret soll es künftig mit wenig Aufwand möglich werden, Abstraktionsebenen einzuführen. Das will MLIR unter anderem damit erreichen, dass es SSA-basierte (Static Single Assignment) IR-Datenstrukturen standardisiert, ein deklaratives System anbietet, um IR-Dialekte zu definieren und eine breite Auswahl an üblicher Infrastruktur anbietet (Dokumentation, Parsing- und Printing-Logik, Location-Tracking und so weiter). Weitere Details zu den Plänen breiten die 21 Seiten des PDF aus.




