Attending this event?
View analytic
Wednesday, September 26 • 14:00 - 15:00
Understanding Optimizers: Helping the Compiler Help You

Sign up or log in to save this to your schedule and see who's attending!

Optimizing compilers can seem rather fickle: sometimes they do something very sophisticated that surprises us, other times they fail to perform an optimization we assumed they would. By understanding the limits on their knowledge, and the constraints in their output, we can much more reliably predict when certain kinds of optimizations can occur. This, in turn, allows our designs to be informed by being friendly to the optimizer.

This talk will discuss concepts fundamental to understanding optimization such as the role of static types, basic blocks, and correctness of emitted code. It will also go through many examples: where inlining does and doesn't occur and why, const propagation, branch pruning, utilizing inferred information/values, the roles of const and value vs reference semantics, etc. Recent, specific improvements in inter-procedural optimizations starting with gcc 7 will be mentioned. It will also show how to help the compiler: writing code in different ways which encourages different optimization strategies.

avatar for Nir Friedman

Nir Friedman

Quantitative Developer, Tower Research Capital
After completing a PhD in physics, Nir started working doing C++ in low latency and high frequency trading. He's interested in the challenges of writing robust code at scale, and highly configurable code that minimizes performance trade-offs.

Wednesday September 26, 2018 14:00 - 15:00

Attendees (81)