GCC and LLVM - Compiler backends implementation comparison
GCC a LLVM - Porovnání implementací zadních částí překladačů
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date
Abstract
Tato diplomová práce se zabývá problematikou překladu programovacích jazyků do strojového kódu. Zaměřuje se na zadní část překladače a vysvětluje základní pojmy a principy fungování generátoru strojového kódu. Dále podrobněji rozebíra implementace generátorů kódu v překladačích GCC a LLVM. Zejména zkoumá způsob, jakým je dosaženo podpory více cílových architektur v jednom kompilátoru. V praktické části byly projekty GCC a LLVM rozšířeny o generátor kódu pro jednoduchou registrovou architekturu s redukovanou instrukční sadou.
This thesis deals with translation of high-level programming languages into machine code. It focuses mainly on back-end part of the compiler. It explains basic concepts and principles of machine code generator. Further it analyzes in greater detail implementation of code generators in the GCC and LLVM. Particularly examining aspects which enable support of multiple target architectures in a single compiler. In practical part of this thesis GCC and LLVM projects were extended to support code generation for a simple register architecture with a reduced instruction set.
This thesis deals with translation of high-level programming languages into machine code. It focuses mainly on back-end part of the compiler. It explains basic concepts and principles of machine code generator. Further it analyzes in greater detail implementation of code generators in the GCC and LLVM. Particularly examining aspects which enable support of multiple target architectures in a single compiler. In practical part of this thesis GCC and LLVM projects were extended to support code generation for a simple register architecture with a reduced instruction set.