Design and Implementation of a TriCore Backend for the LLVM Compiler Framework

Language
en
Document Type
Study Thesis
Issue Date
2010-02-25
Issue Year
2009
Authors
Erhardt, Christoph
Editor
Abstract

This thesis describes the development and implementation of a new backend for the LLVM compiler framework that allows the generation of machine code for the TriCore processor architecture. The TriCore architecture is an advanced platform for embedded systems which unites the features of a microcontroller, a RISC CPU and a digital signal processor. It finds use primarily in the automotive sector and other real-time systems and is employed by the Chair of Distributed Systems and Operating Systems at the University of Erlangen-Nuremberg for various research projects. LLVM is a modern compiler infrastructure with a particular focus on modularity and extensibility. For this reason, LLVM is finding increasingly widespread use in most diverse projects - from code analysis tools via just-in-time code generators through to full-blown general-purpose system compilers. In the course of the thesis, initially a technical overview of LLVM and the TriCore architecture is given. Subsequently, the design and implementation of the compiler backend are discussed in detail and a comparison to the existing GCC port is made.

Abstract

Diese Arbeit beschreibt die Entwicklung und Implementierung eines neuen Backends für das LLVM-Compiler-Framework, um das Erzeugen von Maschinencode für die TriCore-Prozessorarchitektur zu ermöglichen. Die TriCore-Architektur ist eine fortschrittliche Plattform für eingebettete Systeme, welche die Merkmale eines Mikrocontrollers, einer RISC-CPU und eines digitalen Signalprozessors auf sich vereint. Sie findet primär im Automobilbereich und anderen Echtzeitsystemen Verwendung und wird am Lehrstuhl für Verteilte Systeme und Betriebssysteme der Universität Erlangen-Nürnberg für diverse Forschungsprojekte eingesetzt. Bei LLVM handelt es sich um eine moderne Compiler-Infrastruktur, bei deren Entwurf besonderer Wert auf Modularität und Erweiterbarkeit gelegt wurde. Aus diesem Grund findet LLVM zunehmend Verbreitung in den verschiedensten Projekten - von Codeanalyse-Werkzeugen über Just-in-time-Compiler bis hin zu vollständigen Allzweck-Systemcompilern. Im Verlauf dieser Arbeit wird zunächst ein technischer Überblick über LLVM und die TriCore-Architektur gegeben. Anschließend werden Entwurf und Implementierung des Compiler-Backends im Detail beschrieben und ein Vergleich mit der bestehenden GCC-Portierung durchgeführt.

DOI
Document's Licence
Faculties & Collections
Zugehörige ORCIDs