SN Systems Tech Blog

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.

READ THE WHOLE POST 

Analyzing the size of the compiler executable

ARTICLE BY: Russell Gallop
POSTED: Jul 17, 2019
TAGS: Compiler, LLVM Developers Meeting, Toolchain

The title of this lighting talk is from a bug filed in the early days of the PS4 compiler. It noted that the LLVM-based PS4 compiler was more than 3 times larger than the PS3 compiler. Since then it has almost doubled to over 40MB. For a compiler which targets one system this seems excessive. Executable size can cost in worse cache performance and cost time if transferring for distributed builds.

READ THE WHOLE POST 

Measuring the User Debug Experience

ARTICLE BY: Greg Bedwell
POSTED: Jul 11, 2019
TAGS: Compiler, Debugger, LLVM, Toolchain

For a game to hit 30 frames-per-second, all of the frame compute has to fit into ~33.3 ms, at 60 frames-per-second it has to fit into ~16.7 ms. Games are reliant on compiler optimizations to get near to these target frame times, without these optimizations the game may be unplayable. Unfortunately, compiler optimizations tend to interfere with the "debuggability" of the code. This can be for legitimate reasons, i.e. some optimizations fundamentally changing the structure of the code and it may no longer resemble the original source code. In other cases, it can be down to the compiler not preserving debug information that could have been preserved. Game developers often need to play the fully optimized game in order to trigger the required condition to reproduce a reported bug. Making it easier to debug fully optimized code is a request that we hear regularly from game developers.

READ THE WHOLE POST