Call for Papers

Moderne Compiler-Optimierungen ( Vortrag )

Alte und neue Tricks für den kleinsten und schnellsten Code

Referent: André Schmitz, Green Hills Software
Vortragsreihe: Implementierung II
Zeit: 04.12.18 15:35-16:15

Zielgruppe

Entwicklung

Themenbereiche

Implementierung

Schwerpunkt

Methode

Voraussetzungen

Grundlagenwissen

Kurzfassung

Compiler Optimierung ist ein alter Hut und bekannt solange es Compiler gibt. Trotzdem kommen jedes Jahr neue Versionen von Compilern auf den Markt die nochmal 5% kleineren oder 10% schnelleren Code generieren. Wie kann das sein? Sind die bisherigen Compiler etwa schlecht oder verwendet der Compiler Hersteller Tricks die nicht Standard konform sind? Compiler Optimierung ist von Natur her eine komplexe Angelegenheit und der Erfolg der Optimierung hängt sehr stark von dem zu optimierenden Source Code ab. Dieser Vortrag beleuchtet grundsätzliche Konzepte von optimierenden Compilern für C und C++, zeigt Beispiele sowohl von altbekannten als auch von sehr aktuellen Optimierungen auf und hinterfragt den Sinn dieser Optimierungen. Desweiteren werden Fallstricke aufgezeigt beim Versuch Code manuell zu optimieren.

Gliederung

* Einleitung
* Beispiele von Compiler Optimierungen
- "Common Subexpression Elimination"
- "Partial Redundancy Elimination"
- "Dead Code Elimination" (Traditionell und Aggressiv)
- Vektorisierung
- "Constant Propagation"
- "Busy Code Motion"
- Profiler basierte Optimierung
- "Instruction Scheduling"
* Linker Optimierung
* Typische Fallstricke
- Inline Assembler
- Speicherallokierung
* Zusammenfassung

Nutzen und Besonderheiten

In vielen Software Projekten besteht das Ziel möglichst schnellen oder kleinen Code zu generieren. Diese Anforderung können auf verschiedenen Wegen erreicht werden. Ein Aspekt ist die Optimierung des Compilers. Oft versuchen die Entwickler aber auch selbst bereits optimierten Source-Code zu schreiben, was in manchen Fällen aber eher die Qualität des Programms verschlechter, da der Optimierer des Compilers dann selbst nicht mehr so gut optimieren kann. Dieser Vortrag hilft Entwicklern ein besseres Verständnis von Optimierungen zu bekommen und damit abzuschätzen welche Optimierungen von Hand Sinn machen und welche nicht.

Über den Referenten

Dipl. Phys. André Schmitz begann seine berufliche Laufbahn bei der FhG im Bereich Steuerungs- und Simulations-Software für autonome Roboter. Danach entwickelte er bei der Infineon AG embedded Software für UMTS Kommunikationssysteme. Seit 2005 ist Herr Schmitz bei Green Hills Software für die technische Unterstützung von Kunden und die Durchführung von Schulungen zuständig. Herr Schmitz ist seitdem regelmäßig Referent bei diversen Fachkonferenzen zum Thema Embedded Software, Safety und Security.