Seminar LLVM Backend-Entwicklung mit TableGen und Code Generation

Das Seminar behandelt die technische Struktur eines LLVM-Backends von der Target-Registrierung bis zur Ausgabe von Maschinencode oder Assembler. Die Themen werden an einem didaktischen Zielsystem erklärt, damit Registermodell, Instruktionsbeschreibung und Codegen-Pipeline transparent nachvollzogen werden können.

Die Dauer von fünf Tagen ist erforderlich, weil Backend-Entwicklung mehrere gekoppelte Teilsysteme umfasst: TargetMachine, TableGen, SelectionDAG oder GlobalISel, Machine IR, Register Allocation, Scheduling, MC-Schicht und Tests. Die Übungen bauen deshalb in kleinen Schritten ein konsistentes Backend-Verständnis auf.

Kapitel 1: Target-Struktur und TableGen-Grundlagen

Inhaltsverzeichnis

  • TargetMachine und Subtarget-Modell
  • Registerklassen und Instruktionsformate
  • TableGen-Dateien strukturieren

Schritt 1: Target registrieren

Die grundlegenden Target-Komponenten werden eingeordnet: TargetInfo, TargetMachine, Subtarget, InstrInfo, RegisterInfo und FrameLowering. Zuständigkeiten und Initialisierungsreihenfolge werden getrennt betrachtet.

Schritt 2: Registermodell beschreiben

Register, Registerklassen, Aliase und Reservierungen werden modelliert. Dabei werden spätere Auswirkungen auf Register Allocation und Calling Convention berücksichtigt.

Schritt 3: Instruktionen formulieren

Instruktionsformate und einzelne Instruktionen werden in TableGen beschrieben. Operanden, Constraints, Assembler-Strings und Pattern werden schrittweise ergänzt.

Kapitel 2: Instruction Selection und Machine IR

Inhaltsverzeichnis

  • IR bis Machine IR nachvollziehen
  • SelectionDAG und GlobalISel einordnen
  • Legalisierung und Pattern Matching

Schritt 1: Codegen-Pipeline verfolgen

Ein kleines LLVM-IR-Beispiel wird durch die Codegen-Pipeline geführt. Die Zwischenstände werden gelesen und die Rolle von Legalization, Combining und Selection wird getrennt betrachtet.

Schritt 2: Selektionsmuster ergänzen

Einfache arithmetische und Speicheroperationen werden auf Zielinstruktionen abgebildet. Nicht unterstützte Operationen werden durch Expansion oder Custom Lowering behandelt.

Schritt 3: Machine IR prüfen

Ausgewählte Machine-Instruktionen werden inspiziert. Def-Use-Beziehungen, virtuelle Register, Basic Blocks und frühe Optimierungen werden analysiert.

Kapitel 3: Register, Stack und Calling Convention

Inhaltsverzeichnis

  • Register Allocation vorbereiten
  • Frame Lowering und Stack Layout
  • Funktionsaufrufe und ABI-Regeln

Schritt 1: Registerdruck analysieren

Virtuelle Register werden bis zur Allokation verfolgt. Spill-Situationen, Kopierinstruktionen und Registerklassen-Konflikte werden anhand kleiner Beispiele ausgewertet.

Schritt 2: Stack-Frame aufbauen

Prolog, Epilog, Stack-Objekte und Frame-Indizes werden betrachtet. Die Implementierung wird mit einfachen Funktionen, lokalen Variablen und Call-Szenarien geprüft.

Schritt 3: Aufrufkonvention definieren

Argumente, Rückgabewerte und Call-Clobbered-Register werden beschrieben. Danach wird überprüft, ob erzeugter Code konsistent mit den ABI-Annahmen bleibt.

Kapitel 4: Assembler, MC-Schicht und Tests

Inhaltsverzeichnis

  • Assembler-Ausgabe und Disassembler-Grundlagen
  • MCInstrInfo und Kodierung
  • lit-Tests und FileCheck-Strategien

Schritt 1: Assembler-Ausgabe erzeugen

Instruktionen werden in lesbare Assemblerform gebracht. Formatierungsregeln, Operandenreihenfolge und symbolische Referenzen werden abgestimmt.

Schritt 2: Kodierung nachvollziehen

Die MC-Schicht wird als Brücke zwischen Instruktionsmodell und Objektcode eingeordnet. Kodierungsfelder werden geprüft und mit erwarteten Bytefolgen verglichen.

Schritt 3: Regressionstests aufbauen

Tests werden für IR-zu-Assembler, Machine IR und negative Fälle strukturiert. FileCheck-Muster werden so geschrieben, dass sie robust gegen irrelevante Änderungen bleiben.

Fachbereichsleitung / Trainerleitung / Ansprechpartner

Seminar und Anbieter vergleichen

Öffentliche Schulung

Diese Seminarform ist auch als Präsenzseminar bekannt und bedeutet, dass Sie in unseren Räumlichkeiten von einem Trainer vor Ort geschult werden. Jeder Teilnehmer hat einen Arbeitsplatz mit virtueller Schulungsumgebung. Öffentliche Seminare werden in deutscher Sprache durchgeführt, die Unterlagen sind teilweise in Englisch.

Mehr dazu...

Inhausschulung

Diese Seminarform bietet sich für Unternehmen an, welche gleiche mehrere Teilnehmer gleichzeitig schulen möchten. Der Trainer kommt zu Ihnen ins Haus und unterrichtet in Ihren Räumlichkeiten. Diese Seminare können in Deutsch - bei Firmenseminaren ist auch Englisch möglich gebucht werden.

Mehr dazu...

Webinar

Diese Art der Schulung ist geeignet, wenn Sie die Präsenz eines Trainers nicht benötigen, nicht Reisen können und über das Internet an einer Schulung teilnehmen möchten.

Mehr dazu...

Fachbereichsleitung / Trainerleitung / Ansprechpartner

Seminardetails

   
Dauer: 5 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr
Preis: Öffentlich und Webinar: CHF 2.995 zzgl. MwSt.
Inhaus: CHF 8.500 zzgl. MwSt.
Teilnehmeranzahl: min. 2 - max. 8
Teilnehmerkreis: Compiler-Entwicklung, Embedded-Teams, Prozessor- und Plattformentwicklung, Toolchain-Verantwortliche
Voraussetzungen: Gute C++-Kenntnisse, Verständnis von Assembler, ABI-Grundlagen und Compiler-Zwischendarstellungen
Standorte: Live-Online, Firmenstandort, Schulungszentrum
Unterlagen: Seminarunterlagen, Übungen, Beispielprojekte

Seminartermine

Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.

Seminar Startdatum Enddatum Ort Dauer
Winterthur 5 Tage
Zürich 5 Tage
Stream live 5 Tage
Stream gespeichert 5 Tage
Luzern 5 Tage
Bern 5 Tage
Inhaus / Firmenseminar 5 Tage
Sankt Gallen 5 Tage
Basel 5 Tage
Basel 5 Tage
Winterthur 5 Tage
Zürich 5 Tage
Stream live 5 Tage
Stream gespeichert 5 Tage
Luzern 5 Tage
Bern 5 Tage
Inhaus / Firmenseminar 5 Tage
Sankt Gallen 5 Tage
Sankt Gallen 5 Tage
Basel 5 Tage
Winterthur 5 Tage
Zürich 5 Tage
Stream live 5 Tage
Stream gespeichert 5 Tage
Luzern 5 Tage
Bern 5 Tage
Inhaus / Firmenseminar 5 Tage
Inhaus / Firmenseminar 5 Tage
Sankt Gallen 5 Tage
Basel 5 Tage
Winterthur 5 Tage
Zürich 5 Tage
Stream live 5 Tage
Stream gespeichert 5 Tage
Luzern 5 Tage
Bern 5 Tage
Luzern 5 Tage
Bern 5 Tage
Inhaus / Firmenseminar 5 Tage
Sankt Gallen 5 Tage
Nach oben
Seminare als Stream SRI zertifiziert
© 2026 www.seminar-experts.ch All rights reserved.  | Kontakt | Impressum | Nach oben