Low-level optimizations using SSA form in GNU Compiler Collection
Nízkoúrovňové optimalizace pomocí SSA formy v GNU Compiler Collection
bakalářská práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/202666Identifikátory
SIS: 283978
Kolekce
- Kvalifikační práce [11973]
Autor
Vedoucí práce
Oponent práce
Jambor, Martin
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika se specializací Systémové programování
Katedra / ústav / klinika
Katedra aplikované matematiky
Datum obhajoby
5. 9. 2025
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
Single Static Assignment|GNU Compiler Collection|optimalizace kóduKlíčová slova (anglicky)
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.
