Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 368)
Detail práce
   Přihlásit přes CAS
Škálovatelná mod/ref analýza v rámci celého programu
Název práce v češtině: Škálovatelná mod/ref analýza v rámci celého programu
Název v anglickém jazyce: Scalable whole program mod/ref analysis
Akademický rok vypsání: 2018/2019
Typ práce: diplomová práce
Jazyk práce:
Ústav: Katedra aplikované matematiky (32-KAM)
Vedoucí / školitel: doc. Mgr. Jan Hubička, Ph.D.
Řešitel: skrytý - zadáno vedoucím/školitelem
Datum přihlášení: 10.09.2019
Datum zadání: 11.09.2019
Zásady pro vypracování
Implementace link-time optimalizací (LTO) v rámci otevřených překladačů GCC a LLVM pokročila do stavu, kdy je s LTO možné přeložit celý operační systém. V současné době je hlavní výhodou tohoto přístupu inlinování funkcí mezi jednotkami překladu a eliminace mrtvého kódu napříč celým programem. To v případě GCC vede ke znatelnému zmenšení celkové velikosti výsledných binárních souborů.

V návrhu implementace LTO v GCC se ale počítá s dalšími optimalizacemi. Jako perspektivní se jeví analýza mod/ref, kde překladač u každé funkce shrne, které paměťové lokace může číst a modifikovat. Tuto informaci je pak možné použít v rámci lokální optimalizace a zmírnit tak nároky v současné době kladené na inliner. Tato optimalizace může s výhodou použít informaci o typech a přístupových cestách jednotlivých čtení a zápisů a integrovat se tak i s klasickou alias analýzou založenou na typech.

Student se seznámí s implementací inter-procedurálních optimalizací v rámci překladače GCC, s implementací mod/ref analýz v ostatních překladačových systémech a s problematikou alias analýzy na základě typů v rámci programů, které kombinují více programovacích jazyků (C, C++, Objective-C, Fortran, Ada). Na základě toho navrhne vlastní analýzu a případně rozšíření do jazyka C nebo C++ ve formě atributů funkcí, jejich parametrů či proměnných. Cílem je vytvořit prakticky použitelný optimalizační průchod.
Seznam odborné literatury
GNU project. GCC Internals Manual. Dostupné online https://gcc.gnu.org/onlinedocs/gccint/, 2019
LLVM Language Reference Manual, Dostupné online https://llvm.org/docs/LangRef.html, 2019
Muchnick, Steven. Advanced compiler design implementation. Morgan kaufmann, 1997.
Hind, Michael "Pointer analysis: Haven't we solved this problem yet?. Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering. ACM, 2001.
Diwan, Amer, Kathryn S. McKinley, and J. Eliot B. Moss. Type-based alias analysis. ACM Sigplan Notices 33.5 (1998): 106-117.
 
Univerzita Karlova | Informační systém UK