Low-level optimizations using SSA form in GNU Compiler Collection
Nízkoúrovňové optimalizace pomocí SSA formy v GNU Compiler Collection
bachelor thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/202666Identifiers
Study Information System: 283978
Collections
- Kvalifikační práce [11968]
Author
Advisor
Referee
Jambor, Martin
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Computer Science with specialisation in Systems Programming
Department
Department of Applied Mathematics
Date of defense
5. 9. 2025
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
Single Static Assignment|GNU Compiler Collection|optimalizace kóduKeywords (English)
Single Static Assignment|GNU Compiler Collection|code optimizationOptimalizace v překladačích jsou základní součástí procesu kompilace. Běžně použí- vaným základem pro mnoho optimalizací je Single Static Assignment (SSA) forma, která umožňuje přehledné a efektivní vyjádření toku dat. Přestože SSA forma hraje důležitou roli ve vysokoúrovňových optimalizacích v GCC už od zavedení GIMPLE, většina níz- koúrovňových optimalizací na úrovni RTL stále spoléhá na tradiční dataflow analýzu. Tato práce se zabývá frameworkem RTL SSA v GNU Compiler Collection (GCC) a jeho vhodností pro implementaci nízkoúrovňových optimalizací. Hlavním cílem je implemen- tace mazání mrtvého kódu pomocí RTL SSA frameworku jako náhrady za stávající řešení založené na use-def chains. Výsledné řešení dosahuje srovnatelných výsledků a umožňuje takzvané bootstrap sestavení GCC, což naznačuje správnost a stabilitu tohoto řešení.
Compiler optimizations are a fundamental part of the compilation process. A widely adopted foundation for many optimizations is Static Single Assignment (SSA) form, which provides a clear and efficient way to represent data flow. Although SSA form has played a key role in GCC's high-level optimizations since GIMPLE was introduced, most low-level optimizations on RTL still rely on traditional dataflow analysis. This thesis explores the RTL SSA framework in the GNU Compiler Collection (GCC) and its suitability for imple- menting low-level optimizations. The focus is on implementing a dead code elimination pass using the RTL SSA framework, aiming to replace the existing use-def chain-based approach. The resulting pass achieves nearly equivalent results as the existing implemen- tation and supports full GCC bootstrapping, indicating correctness and stability.
