Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
Škálovatelná mod/ref analýza v rámci celého programu
Thesis title in Czech: Škálovatelná mod/ref analýza v rámci celého programu
Thesis title in English: Scalable whole program mod/ref analysis
Academic year of topic announcement: 2018/2019
Thesis type: diploma thesis
Thesis language:
Department: Department of Applied Mathematics (32-KAM)
Supervisor: doc. Mgr. Jan Hubička, Ph.D.
Author: hidden - assigned by the advisor
Date of registration: 10.09.2019
Date of assignment: 11.09.2019
Guidelines
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.
References
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.
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html