title: Interprocedural Constant Loop Bound Propagation for Patmos Architecture
Creators: name: Hue, Jerome
Publisher: name: TU Wien
Year: 2024
Subjects: subject: Compilers
subject: Program Analysis
subject: Optimizatoin
subject: Single-path code
subject: real-time systems
subject: LLVM

description: Echtzeitsysteme erfordern nicht nur genaue Berechnungen, sondern auch die strikte Einhaltung zeitlicher Beschränkungen. Der Patmos-Prozessor, der für Echtzeitanwendungen entwickelt wurde, unterstützt eine Technik zur Codegenerierung, die als Single-Path-Code bekannt ist. Diese Technik stellt sicher, dass alle Programmausführungen konsistent einem einzigen Pfad folgen, unabhängig von Laufzeitereignissen. Ein entscheidender Aspekt beim Erreichen dieser Vorhersagbarkeit ist die Verfügbarkeit von Schleifengrenzen während der Kompilierung. Die korrekte Generierung von Code hängt davon ab, dass die genaue Anzahl der Iterationen von Schleifen bekannt ist, die zur Kompilierungszeit Zeit bereitgestellt wird.Um dies zu erleichtern, bietet der Patmos-Compiler Unterstützung für ein Pragma, das es Entwicklern ermöglicht, die unteren und oberen Grenzen von Schleifen direkt im C-Code anzugeben. Diese Informationen werden dann verwendet, um Single-Path-Code zu erzeugen, der garantiert, dass Schleifeniterationen genau wie definiert ablaufen. Eine Herausforderung ergibt sich jedoch, wenn die Schleifengrenzen von Funktionsargumenten abhängen. In solchen fällen werden Schleifenbegrenzungspragmas unwirksam, da sie nicht in der Lage sind nicht konstante Werte zu berücksichtigen, was zu Kompilierungsfehlern führt.Diese Masterarbeit untersucht die Optimierung von Echtzeitsystemen mit dem Patmos-Prozessor und konzentriert sich auf die Herausforderung, dass Schleifengrenzen von Funktionsargumenten abhängen. Die Forschung untersucht alternative Strategien zur Umgehung dieser Einschränkung und zielt darauf ab, die Anwendbarkeit der Single-Path-Code-Generierung in Szenarien zu verbessern, in denen Schleifengrenzen dynamisch von Laufzeitparametern abhängen. Die Ergebnisse tragen dazu bei, die Möglichkeiten der Entwicklung von Echtzeitsystemen auf der Patmos-Plattform zu verbessern, indem sie es ermöglichen, Code zu schreiben, der vorher nicht verarbeitet werden konnte.
description: Real-time systems demand not only accurate computation but also strict adherence to temporal constraints. The Patmos processor, designed for real-time applications, supports a code generation technique known as single-path code. This technique ensures that all program executions consistently follow a singular path, independent of runtime events. A crucial aspect of achieving this predictability is the availability of loop bounds during compilation. The correct generation of code relies on knowing the exact number of iterations loops will perform, provided at compile time.To facilitate this, the Patmos compiler provides support for a pragma allowing developers to specify the lower and upper bounds of loops directly in C code. This information is then utilized to generate single-path code, guaranteeing loop iterations occur precisely as defined. However, a challenge arises when loop bounds are contingent upon function arguments. In such cases, loop bound pragmas are rendered ineffective due to their inability to accommodate non-constant values, resulting in compilation failures.This master's thesis explores the optimization of real-time systems using the Patmos processor, with a specific focus on addressing the challenge of loop bounds depending on function arguments. The research investigates alternative strategies to circumvent this limitation, aiming to enhance the applicability of single-path code generation in scenarios where loop bounds dynamically depend on runtime parameters. The findings contribute to advancing the capabilities of real-time systems development on the Patmos platform, making it possible to write code that couldn't be handled before.