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
Loop Analysis for LLVM IR Translation Validation Framework
Název práce v češtině: Analýza cyklů ve verifikačním frameworku pro LLVM IR
Název v anglickém jazyce: Loop Analysis for LLVM IR Translation Validation Framework
Akademický rok vypsání: 2022/2023
Typ práce: bakalářská práce
Jazyk práce: angličtina
Ústav: Katedra distribuovaných a spolehlivých systémů (32-KDSS)
Vedoucí / školitel: doc. RNDr. Jan Kofroň, Ph.D.
Řešitel: skrytý - zadáno a potvrzeno stud. odd.
Datum přihlášení: 17.03.2023
Datum zadání: 24.03.2023
Datum potvrzení stud. oddělením: 11.04.2023
Oponenti: doc. RNDr. Pavel Parízek, Ph.D.
 
 
 
Konzultanti: Mgr. Martin Blicha, Ph.D.
Zásady pro vypracování
Alive2 [1] is an open-source translation validation framework primarily used by LLVM [2] developers to verify the correctness of compiler optimizations. Alive2 strives to eliminate false positives, but sometimes, it fails to do so with certain types of loops [3].

The goal of this bachelor thesis is to research and possibly design and implement a method of improving the loop analysis algorithm in Alive2 to eliminate or significantly reduce the frequency of the these false alarms. Should it become apparent that there exists one best way to fix the current deficiencies (as described above), the student should attempt to implement a production-ready version of the algorithm and, as an optional goal, integrate it into Alive2. Otherwise, at least some of the considered methods should be implemented as a prototype and experimentally evaluated. A substantial effort will be required to study basic compiler concepts like control-flow graph and dominators as well as more advanced ones, like irreducible loops and static single assignment form, especially in the context of LLVM and Alive2. Furthermore, the student should grasp the necessary background in translation validation, especially the role of loop unrolling in verification of programs, which are necessary prerequisites for successful implementation of the developed algorithm. Finally, the student must be able to dive into large and complex codebases like LLVM.
Seznam odborné literatury
[1] Alive2 – https://github.com/AliveToolkit/alive2
[2] LLVM – https://llvm.org/
[3] Issues with analysis of certain types of loops – https://github.com/AliveToolkit/alive2/issues/748
 
Univerzita Karlova | Informační systém UK