SN Systems Tech Blog


Improving the Optimized Debugging Experience

ARTICLE BY: Orlando Cazalet-Hyams
POSTED: Dec 06, 2019
TAGS: LLVM Developers Meeting, Toolchain

Sometimes it is impractical to debug unoptimized code (-g -O0). However, the optimized debugging experience (-g -O2) can be frustrating and occasionally misleading. This is not ideal, especially when printf-debugging won't cut it. But it doesn't have to be this way! Over the last year, using DExTer and other tools, we have found many debug-info bugs that occur when compiling with optimizations. Some remain unfixed and there are certainly more to be found. In this talk I'll outline some examples of these bugs, how we found them, and what we're doing to improve the optimized debugging experience.


Supporting Regular and Thin LTO with a Single LTO Bitcode Format

ARTICLE BY: Matthew Voss
POSTED: Nov 28, 2019
TAGS: LLVM, LLVM Developers Meeting, LTO, Toolchain

In LLVM versions up to and including 10.0, LTO bitcode files are specialized to either Thin or Regular LTO. As a user or middleware library provider, this increases the complexity. A user must recompile all files for the type of LTO and library providers must ship two versions of their bitcode. This talk outlines Sony Interactive Entertainment’s (SIE) solution: a single LTO bitcode format that can be used with both Thin and Regular LTO backends.


Clang Time Trace Feature

ARTICLE BY: Russell Gallop
POSTED: Sep 25, 2019
TAGS: Clang, Compiler, Toolchain

For many game studios, fast builds are essential to their development process and a lot of time and effort can be spent keeping builds fast. To support this, the PS4 toolchain will shortly support a new Clang feature; time traces. This tells you where the compiler is spending its time, giving you an insight into what the compiler is doing and an insight into your own code.