Das Seminar behandelt den Aufbau eines JIT-Compilers mit der ORC-Infrastruktur. Es verbindet IR-Erzeugung, Optimierung, Symbolauflösung, Materialisierung und Laufzeitintegration zu einem nachvollziehbaren Gesamtmodell.
Drei Tage sind sinnvoll, weil JIT-Compiler neben Compiler-Grundlagen auch Linker-, Runtime- und Nebenläufigkeitsaspekte enthalten. Die Übungen führen von einem minimalen JIT zu einer strukturierten Integration.
Kapitel 1: JIT-Architektur und ORC-Bausteine
Inhaltsverzeichnis
- Execution Session und JITDylibs
- ThreadSafeModule und ThreadSafeContext
- Materialisierung und Symbolmodell
Schritt 1: Architektur skizzieren
Die ORC-Bausteine werden als Laufzeitarchitektur eingeordnet. Execution Session, JITDylibs, Layer und Symboltabellen werden voneinander getrennt.
Schritt 2: IR sicher übergeben
Module und Kontexte werden über ThreadSafe-Strukturen verwaltet. Dadurch werden Eigentum, Lebensdauer und parallele Kompilierung kontrollierbar.
Schritt 3: Symbole modellieren
Definitionen, Deklarationen und externe Symbole werden unterschieden. Sichtbarkeit und Linkage werden mit dem Laufzeitmodell abgeglichen.
Kapitel 2: Kompilierung, Linking und Ausführung
Inhaltsverzeichnis
- IR-Optimierung vor JIT-Ausführung
- Object Linking Layer
- Funktionsaufruf aus Host-Code
Schritt 1: Modul vorbereiten
LLVM IR wird vor der JIT-Ausführung validiert und optional optimiert. Zielmaschine, Datenlayout und Target-Triple werden konsistent gesetzt.
Schritt 2: Objekte materialisieren
Die JIT-Kompilierung erzeugt ausführbare Einheiten. Relokationen, externe Abhängigkeiten und Linker-Schritte werden nachvollzogen.
Schritt 3: Funktion ausführen
Ein Symbol wird gesucht, in eine aufrufbare Adresse überführt und mit passender Signatur verwendet. Fehlerfälle durch falsche Signaturen werden bewusst vermieden.
Kapitel 3: Runtime-Integration und Diagnose
Inhaltsverzeichnis
- Externe Funktionen und Host-Schnittstellen
- Lazy Compilation und Lebensdauer
- Fehlersuche in JIT-Szenarien
Schritt 1: Runtime anbinden
Host-Funktionen werden für JIT-Code verfügbar gemacht. Namensauflösung, C-ABI-nahe Schnittstellen und globale Zustände werden kontrolliert behandelt.
Schritt 2: Kompilierung verzögern
Lazy-Strategien werden eingeordnet, um Startkosten und Laufzeitkosten abzuwägen. Die Auswirkungen auf Symbolauflösung und Fehlerzeitpunkt werden betrachtet.
Schritt 3: Fehler isolieren
Typische Probleme wie fehlende Symbole, falsches Datenlayout, ungültige IR oder inkonsistente Lebensdauer werden Schritt für Schritt eingegrenzt.
Fachbereichsleitung / Trainerleitung / Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmerkreis: | Runtime-Entwicklung, Compiler-Teams, Scripting- und Plugin-Systeme, Forschung, Performance Engineering |
| Voraussetzungen: | C++-Kenntnisse, Grundlagen zu LLVM IR, Linken, Symbolen und Laufzeitumgebungen |
| Standorte: | Live-Online, Firmenstandort, Schulungszentrum |
| Unterlagen: | Seminarunterlagen, Übungen, Beispielprojekte |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
