Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
Loop Analysis for LLVM IR Translation Validation Framework
Thesis title in Czech: Analýza cyklů ve verifikačním frameworku pro LLVM IR
Thesis title in English: Loop Analysis for LLVM IR Translation Validation Framework
Key words: překladače|LLVM|translation validation|formální verifikace
English key words: compilers|LLVM|translation validation|formal verification
Academic year of topic announcement: 2022/2023
Thesis type: Bachelor's thesis
Thesis language: angličtina
Department: Department of Distributed and Dependable Systems (32-KDSS)
Supervisor: doc. RNDr. Jan Kofroň, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 17.03.2023
Date of assignment: 24.03.2023
Confirmed by Study dept. on: 11.04.2023
Date of electronic submission:08.05.2024
Opponents: doc. RNDr. Pavel Parízek, Ph.D.
 
 
 
Advisors: Mgr. Martin Blicha, Ph.D.
Guidelines
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.
References
[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
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html