Modules

BackEsc12460

Optimization Techniques in Modern Compilers

Optimierungstechniken in modernen Compilern

4 CPirregularlyDEno longer offered

Prerequisites

Recommended, as written

• Ein prinzipielles Verständnis über den Aufbau und die Arbeitsweise eines Prozessors sowie den Aufbau eines Compilers und den Ablauf bei der Übersetzung eines Programms sind hilfreich. • Detaillierte Kenntnisse über Parsingtechniken, wie sie in der Compilertechnikvorlesung vermittelt werden, sind nicht erforderlich.

Contents

Die Studierenden erhalten Einblick in fortgeschrittene Optimierungstechniken, die in modernen Compilern angewendet werden, um bei der Erzeugung von Zielcode diesen so zu generieren, dass er effizient auf einer gegebenen Zielarchitektur abgearbeitet werden kann. Es werden dabei auch verschiedene Aspekte von Programmiersprachen beleuchtet, die einen großen Einfluss auf die möglichen Optimierungen durch einen Compiler haben können. Konkret bedeutet das: Überblick über die Architekturen verschiedener Zielprozessoren und den besonderen Erfordernissen bei der Zielcodeoptimierung für diese Architekturen. Phasen der Zielcodeerzeugung und deren Abhängigkeiten: Ablaufplanung, Zielcodeauswahl, Registerplanung. Zielocodeoptimierungen für Prozessoren mit Parallelität auf Instruktionsebene. Möglichkeiten und Grenzen von statischen Optimierungen. Codetransformationen zur Erzeugung von Parallelität auf Instruktionsebene: • Trace-Scheduling, Superblöcke, Hyperblöcke, • Spekulative Ausführung von Operationen • Loop-Unrolling, Modulo-Scheduling • Array-Data-Dependency-Analyse, • Alias-Analyse • Zielcodeoptimierungen für Multi-Core-Prozessoren.

Learning outcomes

Durch die Vorlesung erkennt der Studierende die vielfältigen Zusammenhänge, die zwischen der technischen Informatik (mit Schwerpunkt Prozessorentwurf) und dem Compilerbau, bestehen. Der Studierende erhält einen ganzheitlichen Blick auf den Zusammenhang zwischen Prozessorarchitekturen, Programmiersprachen und den daraus resultierenden erforderlichen bzw. überhaupt möglichen Optimierungen, die durch einen Compiler statisch durchgeführt werden können. Dies wiederum versetzt ihn in die Lage die gegenseitigen Abhängigkeiten, die zwischen dem Prozessorentwurf und dem Entwurf eines Compilers bestehen, zu erkennen. Der Studierende lernt formale Modelle als Grundlage für die im Compiler angewendeten Optimierungsmethoden kennen, woraus er sich auch die Grenzen dieser Ansätze ableiten kann.

Assessment

• mündliche Prüfung, benotet

Literature (3)
  • Randy Allen, Ken Kennedy: Optimizing Compilers for Modern Architectures. Morgan Kaufmann Verlag, 2002, Publishers, ISBN: 1-55860-286-0
  • Alain Darte, Yves Robert, Frederic Vivien: Scheduling and Automatic Parallelization. Birkhäuser Verlag, 2000, ISBN: 987654321.
  • Santosh Pande, Dharma P. Agrawal (Eds.): Compiler Optimizations for Scalable Parallel Systems. Springer Verlag, 2001, ISBN: 3-540-41945-4

Remarks

• Studiengang Informatik M. Sc.: Wahlpflichtmodul im Komplex „Grundlagen der Informatik“ (Niveaustufe 400). • Studiengang Informations- und Medientechnik M. Sc.: Wahlpflichtmodul im Komplex „Rechnerbasierte Systeme".

Source: BTU's module description · retrieved 15 Oct 2026Original

Module catalogue · unofficial

Betula is an unofficial project and not part of BTU.

Folia 1.0.3Radix 0.6.0

Data as of 21 Oct 2026Winter 2026/27Source: BTU