SoftwareX (Sep 2024)
CaLLi: OCaml library for static analysis of LLVM bitcode
Abstract
As LLVM has matured, several third-party static analysis frameworks targeting LLVM bitcode have emerged. However, because these frameworks are written in one of the traditional object-oriented languages such as C++ and Java, developing new analysis tools on the frameworks requires much effort to implement complex components for static analysis. This paper introduces CaLLi, an OCaml library designed for static analysis of LLVM bitcode. OCaml is a functional programming language and widely employed in research and tool development for static analysis, due to its robust type system and reliability. CaLLi assists in developing static analysis tools by providing essential modules for static analysis. Additionally, CaLLi provides several IR transformation features and supports context-sensitive analysis to enhance analysis accuracy.