Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 384)
Detail práce
   Přihlásit přes CAS
Alternativní implementace inlineru v GNU Compiler Collection
Název práce v češtině: Alternativní implementace inlineru v GNU Compiler Collection
Název v anglickém jazyce: Alternative inliner implementation in GNU Compiler Collection
Klíčová slova: překladač|interprocedurální optimalizace
Klíčová slova anglicky: compiler|inter-procedural optimization
Akademický rok vypsání: 2024/2025
Typ práce: bakalářská práce
Jazyk práce: angličtina
Ústav: Katedra aplikované matematiky (32-KAM)
Vedoucí / školitel: doc. Mgr. Jan Hubička, Ph.D.
Řešitel: skrytý - zadáno vedoucím/školitelem, čeká na schválení garantem
Datum přihlášení: 04.07.2024
Datum zadání: 11.07.2024
Datum a čas obhajoby: 06.09.2024 09:00
Datum odevzdání elektronické podoby:19.07.2024
Datum odevzdání tištěné podoby:19.07.2024
Datum proběhlé obhajoby: 06.09.2024
Oponenti: Mgr. Martin Jambor
 
 
 
Zásady pro vypracování
Inlinování funkcí je nejpodstatnější inter-procedurální optimalizace. Jeho nejsložitější část je heuristika rozhodující, které funkce je potřeba inlinovat, aby vzniklý kód pracoval efektivně a zároveň nebyl přiliš velký.

GCC v současnosti implementuje dva nezávislé inlinery. První pracuje krátce po převodu funkce do mezikódu a má za úkol provádět jednoduchá rozhodnutí, kde dochází ke zrychlení kódu i zmenšení programu. Druhý inliner pracuje během linkování nad celým programem a je implementován jako hladový algoritmus řízený Fibbonaciho haldou. Algorimus sice dává dobré výsledky, ale nelze jej adaptovat pro paralelní výpočty a stává se tak úzkým hrdlem celého překladu.

Student se seznámí s problematikou inter-procedurální optimalizace a navrhne nový algoritmus inlineru, který je jednodušší a umožňuje paralelizaci. (Vlastní paralelizace ale není cílem práce.) Algoritmus pak porovná s aktuální implementací a provede studii o možnosti praktického nasazení v GCC.
Seznam odborné literatury
Stallman RM. GNU compiler collection internals. Free Software Foundation. 2023.

Glek T, Hubička J. Optimizing real-world applications with GCC Link Time Optimization. In GCC Developers’ Summit 2010 Oct 25 (p. 25).

Johnson T, Amini M, Li XD. ThinLTO: scalable and incremental LTO. In: 2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) 2017 Feb 4 (pp. 111-121). IEEE.

Theodoridis T, Grosser T, Su Z. Understanding and exploiting optimal function inlining. In: Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems 2022 Feb 28 (pp. 977-989).

Zhao P, Amaral JN. To inline or not to inline? Enhanced inlining decisions. In: Languages and Compilers for Parallel Computing: 16th International Workshop, LCPC 2003, College Station, TX, USA, October 2-4, 2003. Revised Papers 16 2004 (pp. 405-419). Springer Berlin Heidelberg.

Chakrabarti DR, Liu SM. Inline analysis: Beyond selection heuristics. InInternational Symposium on Code Generation and Optimization (CGO'06) 2006 Mar 26 (pp. 12-pp). IEEE.
 
Univerzita Karlova | Informační systém UK