Generátor kódu s vyměnitelnou cílovou architekturou
A retargetable code-generator
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/7118Identifiers
Study Information System: 44758
Collections
- Kvalifikační práce [11217]
Author
Advisor
Referee
Král, Jaroslav
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software systems
Department
Department of Software Engineering
Date of defense
11. 9. 2006
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Very good
Práce se zabývá návrhem backendu pro kompilátor jazyka C++ s podporou generování kódu pro více cílových architektur. Backend je rozdělen na dvě části: systém popisu cílové architektury a generátor kódu. Popis cílové architektury je založen na jazyku XML. Ze vstupního XML souboru jsou pomocí XSL šablon vygenerovány C++ třídy reprezentující charakteristiky a vlastnosti architektury (instrukce, podporované datové typy, registry, atd). Tyto třídy používá generátor kódu jako zdroj informaí o cílové architektuře. Generátor kódu je na architektuře nezávislý. Hlavní fáze jsou: výběr instrukcí, plánování instrukcí, alokace registrů, generování spillkódu. Výstupem je asemblerový zdrojový kód.
This work is focusing on a retargetable backend design for a C++ compiler. The backend is composed of two parts: a target architecture description and a code-generator. The architecture description is based on the XML language. A source XML le is an input for XSL templates that generate C++ classes with the architecture's characteristics such as instructions, supported data types, registers, etc. These classes are used by the code generator as a source of information about the target architecture. The code-generator is architecture-independent. The main phases are: instruction selection, instruction scheduling, register allocation, spill-code generation. The generated output is an assembly source code.