SN Systems Tech Blog

Using automated tests to tune the -Og pipeline

ARTICLE BY: Stephen Tozer
POSTED: Sep 01, 2023
TAGS: LLVM Developers Meeting, Toolchain

In clang, the -Og flag is intended to run optimizations that will not significantly reduce the quality of the program's debug information. Rather than making informed decisions about which optimizations will preserve debug info, this flag currently uses the -O1 pipeline, to run a few optimizations and hope that debug info will not be significantly affected.

READ THE WHOLE POST 

What would it take to remove debug intrinsics?

ARTICLE BY: Jeremy Morse
POSTED: Sep 01, 2023
TAGS: LLVM Developers Meeting, Toolchain

It is a truth universally acknowledged that representing LLVMs debug-info with intrinsics is a poor design, slowing compile-time performance and creating new categories of bugs. However, removing them is not easy as our APIs lack a way of describing instruction positions from outside of the instruction list. In this talk I'll illustrate what's bad about the current design and explore the design space of possible solutions.

READ THE WHOLE POST 

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.

READ THE WHOLE POST