Original title:
Generované peephole optimalizace v překladači LLVM
Translated title:
Generated Peephole Optimizations in LLVM Compiler
Authors:
Melo, Stanislav ; Podivínský, Jakub (referee) ; Hruška, Tomáš (advisor) Document type: Master’s theses
Year:
2016
Language:
cze Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[cze][eng]
Jednou z důležitých vlastností aplikačně specifických procesorů je jejich výkon. Aby byl co největší, musí se překladač přizpůsobit potřebám procesoru, pre který bude překládat a generovat co nejefektívnejší kód. Jedním ze způsobů přizpůsobení se je hledání vhodných instrukcií, které je možné implementovat jako jednu instrukci s více výstupy. Následně se dá vygenerovaný kód zefektivnit pomocí peephole optimalizátoru, který vyhledává skupiny instrukcí, které může směnit za jejich efektivnejší varianty. Tato práce popisuje problém nacházení a výběru instrukcí s více výsledky. Taktéž poskytuje stručný přehled několika nejznámějších algoritmů na řešení tohoto problému. Na závěr skoumá uplatnění a začlenění řešení spolu s peephole optimalizacemi, do překladače LLVM.
One of the important feature of application specific processors is performance. To maximize it, the compiler must adapt to needs of processor that it is going to compile for and it must generate the most efficient code. One of the ways to do that is to search for appropriate instructions that can be implemented as one instruction with multiple outputs. Afterwards the generated code can be parsed through peephole optimizations that search for instruction patterns and replace them with other instructions to make code more effective. This paper describes the problem of finding and selecting suitable candidates for multiple output instructions. It also provides a brief overview of the few best known algorithms that solve this problem. Eventually it examines possibilities of incorporating this optimizations to LLVM compiler.
Keywords:
code generation; LLVM; multile output instructions; peephole optimizations; generování kódu; instrukce s více výsledky; LLVM; peephole optimalizace
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/61941