Das Seminar behandelt die praktische Arbeit mit LLVM IR und dem modernen Pass-System. Der Schwerpunkt liegt auf der Entwicklung nachvollziehbarer Analyse- und Transformationspässe, ihrer Einbindung in Pipelines und der Absicherung über Tests.
Drei Tage sind erforderlich, weil IR-Semantik, Analyseinfrastruktur, Transformation, Pipeline-Integration und Teststrategie aufeinander aufbauen. Die Inhalte gehen deutlich über einen reinen IR-Überblick hinaus.
Kapitel 1: IR-Semantik und Analysebasis
Inhaltsverzeichnis
- Module, Funktionen und Kontrollfluss
- Datenfluss, SSA und Dominanz
- Verifier und Debug-Informationen
Schritt 1: IR-Einheiten identifizieren
Module, Funktionen, Basic Blocks und Instruktionen werden getrennt untersucht. Kontrollflussgraphen werden aus Terminatoren und Kanten abgeleitet.
Schritt 2: Datenfluss verfolgen
Werte, Uses, Defs und Phi-Knoten werden anhand konkreter Beispiele verfolgt. Dadurch wird klar, welche Transformationen semantisch sicher sind.
Schritt 3: Konsistenz prüfen
IR wird mit Verifier-Denken betrachtet. Typfehler, ungültige Terminatoren, falsche Dominanz und problematische Metadaten werden systematisch eingeordnet.
Kapitel 2: Analyse- und Transformationspässe
Inhaltsverzeichnis
- Pass-Struktur im New Pass Manager
- Analysemanager und Preserved Analyses
- Transformationen mit Sicherheitsbedingungen
Schritt 1: Pass-Gerüst anlegen
Ein Pass wird in Klassenstruktur, Run-Methode, IR-Einheit und Rückgabewert gegliedert. Die Unterschiede zwischen Modul-, Funktions-, CGSCC- und Loop-Pässen werden geklärt.
Schritt 2: Analyseergebnisse nutzen
Dominanz, Loop-Informationen und weitere Analysen werden als Voraussetzung für Transformationen betrachtet. Ungültigkeiten werden über Preserved Analyses bewusst gesteuert.
Schritt 3: IR ändern
Eine kleine Transformation wird mit klarer Vorbedingung durchgeführt. Danach werden Verifier, Tests und Vergleich der IR-Ausgabe verwendet, um die Änderung abzusichern.
Kapitel 3: Pipeline-Erweiterung und Testbarkeit
Inhaltsverzeichnis
- PassBuilder und Pipeline-Registrierung
- opt-basierte Ausführung
- lit und FileCheck
Schritt 1: Pipeline anbinden
Der Pass wird in eine ausführbare Pipeline eingebunden. Dabei werden Namensgebung, Plugin-Mechanik und Positionierung innerhalb bestehender Optimierungen betrachtet.
Schritt 2: Ausführung reproduzieren
Kleine IR-Dateien werden als stabile Eingaben verwendet. Ausgaben werden so reduziert, dass Ursache und Wirkung einer Transformation sichtbar bleiben.
Schritt 3: Regressionstests schreiben
Tests prüfen positive Fälle, negative Fälle und Grenzsituationen. FileCheck-Muster werden nicht übergenau formuliert, damit fachliche Erwartungen im Vordergrund bleiben.
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: | Compiler-Entwicklung, Performance Engineering, Toolchain-Teams, Forschung und Entwicklung mit IR-Transformationen |
| Voraussetzungen: | C++-Kenntnisse, LLVM-Grundverständnis oder vergleichbare Erfahrung mit Compiler-Zwischendarstellungen |
| Standorte: | Live-Online, Firmenstandort, Schulungszentrum |
| Unterlagen: | Seminarunterlagen, Übungen, Beispielprojekte |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
