SN Systems Tech Blog


Improving debug locations for variables in memory

ARTICLE BY: Orlando Cazalet-Hyams
POSTED: Jun 07, 2022
TAGS: LLVM Developers Meeting, Toolchain

LLVM generates suboptimal debug variable locations for variables in memory in optimised code. We’ve been prototyping a new debug intrinsic which enables LLVM to make smarter decisions for these variables by connecting stores and source assignment markers. In this talk I will briefly outline the problem with the existing system, how the new system works, including how existing passes are affected and discuss the accuracy and coverage improvements we've found so far.


Improving debug variable location coverage by using even more SSA

ARTICLE BY: Jeremy Morse
POSTED: Jan 05, 2022
TAGS: LLVM Developers Meeting, Toolchain

In this talk, Jeremy explains how LLVM has been tracking variable locations to date and its limitations, how a proposed new technique for tracking variable locations works, and how this can become a pair of SSA (Single Static Assignment) problems to solve at the end of compilation.


llvm-diva - Debug Information Visual Analyzer

ARTICLE BY: Carlos Alberto Enciso
POSTED: Dec 10, 2020
TAGS: LLVM Developers Meeting, Toolchain

llvm-diva is a command line tool that processes the Debugging Information (DWARF, COFF, CodeView) contained in binary files (ELF, PDB, MacOS) and produces a logical view, which is a high-level representation of the debug information. The logical view is composed of elements such as: scopes, types, symbols and lines. These elements can display additional information, such as a variable coverage factor, lexical block level, template argument encoding, etc.