Compiler-rt is a set of runtime routines present in LLVM infrastructure to support and provide an implementation of various builtin functions for multiple architectures. It consists of – builtin libraries, sanitizer runtimes, profile runtimes, and block runtimes. This talk focuses on one of the compiler rt components- sanitizers. Compiler-rt sanitizers are used to perform runtime checks on compiled code. These checks can include detecting and preventing common programming errors, such as buffer overflows and memory leaks, as well as more sophisticated checks, such as undefined behavior sanitization, which can help detect and prevent subtle bugs that can be difficult to find using other methods. This talk will provide an introduction to compiler rt sanitizers in LLVM, and how to use them on various architectures starting with an example of memory sanitizer for x86 architecture. Second part of the talk will cover – how compiler-rt sanitizers can be used for 32-bit and 64-bit ARM architecture and integrate in development and testing using Software development kit (SDK) built with Yocto. Also useful for the development of applications for memory-constrained embedded devices using clang and LLVM.
Speakers: Mamta Shukla