Das Rust-Projekt hat am 19. April 2016 die mittlere Zwischenrepräsentation MIR vorgestellt. Sie liegt im Compiler zwischen der höher gelegenen HIR und der LLVM-Zwischenrepräsentation und soll mehrere bisher getrennte Verarbeitungsschritte bündeln. Die Trennung von Compilerstufen ergänzt damit den Einsatz compiler-naher Analysewerkzeuge in technischen Teams.
MIR steht für Mid-level Intermediate Representation. Der Compiler übersetzt Rust-Code zunächst in diese vereinfachte interne Form, bevor die Ausgabe für LLVM entsteht. Dadurch können Analysen und Optimierungen an einer Darstellung ansetzen, die weniger Details der vollständigen Programmiersprache enthält.
Weniger Arbeit bei Übersetzung und Analyse
Die Rust-Entwickler nennen inkrementelle Kompilierung, schnellere Ausführung und präzisere Typprüfungen als wichtige Ziele. MIR soll außerdem Rust-spezifische Optimierungen vor der Übergabe an LLVM ermöglichen. Die Zwischenform bildet dafür einen gemeinsamen Anknüpfungspunkt für Borrow-Checking, Kontrollflussanalysen und die spätere Codeerzeugung.
Für technische Teams ist die Änderung vor allem deshalb relevant, weil Compilerlogik und Backend klarer voneinander getrennt werden. Das Rust-Projekt veröffentlichte den damaligen Entwurf zusammen mit einer Beschreibung der internen Darstellung und verwies auf die zugehörige MIR-Spezifikation. Ein älterer Beitrag zum GNU Debugger zeigte bereits, wie Werkzeuge für Analyse und Fehlersuche in Entwicklungsprozessen eingesetzt werden.
