- Clang Static Analyzer: Supporting Multithreaded Code
- Integrating XRay into the HPC Tool Ecosystem
- Automatic LLVM compiler backend generation with OpenVADL
1) Clang Static Analyzer: Supporting Multithreaded Code - Isaac Nudelman
Writing multithreaded code is notoriously difficult. Compounding this, static analysis is not particularly effective, as most analyzers (including Clang) are limited to evaluating a single thread of symbolic execution. This talk will describe changes to the Clang Static Analyzer to support analysis across threads, the challenges with the implementation, and the resulting improvement in analysis quality for multithreaded codebases. In particular, we will show multiple bugs that can now be detected using static analysis.
2) Integrating XRay into the HPC Tool Ecosystem - Sebastian Kreutzer
XRay, Clang’s dynamic function tracing system, offers runtime-adaptable instrumentation with minimal overhead. However, its adoption in HPC has been limited due to missing support for shared libraries (DSOs) and insufficient integration with parallel programming models like MPI and OpenMP. This talk presents our efforts to bridge these gaps, including our recently upstreamed extension for DSO instrumentation and the integration of XRay into established performance tools such as Score-P, TALP, and Extrae. Additionally, we present ideas for future work to enhance XRay’s filtering mechanisms and instrumentation flexibility.
3) Automatic LLVM compiler backend generation with OpenVADL - Kevin Per
The Vienna Architecture Description Language (VADL) is a processor description language for rapid design space exploration. OpenVADL is the open source implementation of VADL. One of the generated artifacts is an LLVM compiler backend. This talk provides an overview of how an automatic compiler backend generator was implemented and discusses the problems and limitations it faces. More details are described in an article available at https://arxiv.org/pdf/2402.09087