2013 Keynote: Chandler Carruth: Optimizing the Emergent Structures of C++

We are confronted today with the increasing complexity of our C++ software systems. To manage this complexity and build larger applications and systems, C++ strives to form emergent structures (often found in nature, such as snowflakes' symmetrical structures), where simple patterns combine to form a remarkably complex and powerful system. These structures provide both a means to limit the complexity of each component and the essential economies of scale we rely on when developing software. From handheld devices to warehouse-sized data centers, motivated by smaller devices and increased concerns over power consumption, we are relying upon C++ to deliver these complex systems with unmatched efficiency. Our optimizing compilers today are more important than ever before and are utterly opaque to most practicing programmers. Compounding matters, the very emergent structures which allow C++ systems to scale for humans often provide unique and unsolved challenges to optimization. In this talk, I will start with a brief overview of how modern optimizing compilers work with C++ code at a very high level. I will then walk through the specific structures and patterns of C++ code, which are at the core of forming emergent structures out of simple, elegant elements. I will also address how these interactions can be effectively modeled and analyzed by a compiler to produce efficient final programs. All of this will be illustrated by a collection of real world case studies, which are broadly applicable and show up throughout modern C++ code bases. My goal is to give a framework for understanding these interactions both in the C++ code and the optimizing compiler, so that programmers are aware of the implications posed by these patterns. Finally, I will introduce a set of principles and techniques for designing and implementing C++ programs and libraries to specifically clear the way for modern optimizers while retaining the simplicity of each component and the power of the combined whole. --- *--* ---

CppCon 2017: Chandler Carruth “Going Nowhere Faster”
▶︎

CppCon 2017: Chandler Carruth “Going Nowhere Faster”

The Story of C++: The World's Most Consequential Programming Language | The Official Story
▶︎

The Story of C++: The World's Most Consequential Programming Language | The Official Story

Understanding Compiler Optimization - Chandler Carruth - Opening Keynote Meeting C++ 2015
▶︎

Understanding Compiler Optimization - Chandler Carruth - Opening Keynote Meeting C++ 2015

CppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures"
▶︎

CppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures"

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
▶︎

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones
▶︎

Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

1979: Will WORD PROCESSORS start a HOME WORKING revolution? | Past Predictions | BBC Archive
▶︎

1979: Will WORD PROCESSORS start a HOME WORKING revolution? | Past Predictions | BBC Archive

Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)
▶︎

Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)

CppCon 2019: Chandler Carruth “There Are No Zero-cost Abstractions”
▶︎

CppCon 2019: Chandler Carruth “There Are No Zero-cost Abstractions”

C++Now 2018: You Can Do Better than std::unordered_map: New Improvements to Hash Table Performance
▶︎

C++Now 2018: You Can Do Better than std::unordered_map: New Improvements to Hash Table Performance

On "simple" Optimizations - Chandler Carruth - Secret Lightning Talks - Meeting C++ 2016
▶︎

On "simple" Optimizations - Chandler Carruth - Secret Lightning Talks - Meeting C++ 2016

2013 EuroLLVM Developers’ Meeting: C. Carruth “Optimization in LLVM - Numbers, A Case Study, ...”
▶︎

2013 EuroLLVM Developers’ Meeting: C. Carruth “Optimization in LLVM - Numbers, A Case Study, ...”

CppCon 2014: Mike Acton "Data-Oriented Design and C++"
▶︎

CppCon 2014: Mike Acton "Data-Oriented Design and C++"

The Design of C++ , lecture by Bjarne Stroustrup
▶︎

The Design of C++ , lecture by Bjarne Stroustrup

CppCon 2014: Herb Sutter "Back to the Basics! Essentials of Modern C++ Style"
▶︎

CppCon 2014: Herb Sutter "Back to the Basics! Essentials of Modern C++ Style"

How SpaceX Humiliated Wall Street
▶︎

How SpaceX Humiliated Wall Street

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup
▶︎

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

code::dive 2016 conference – Chandler Carruth – Making C++ easier, faster and safer (part 1)
▶︎

code::dive 2016 conference – Chandler Carruth – Making C++ easier, faster and safer (part 1)

CppCon 2015: Chandler Carruth "Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!"
▶︎

CppCon 2015: Chandler Carruth "Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!"

Pacific++ 2017: Chandler Carruth "LLVM: A Modern, Open C++ Toolchain"
▶︎

Pacific++ 2017: Chandler Carruth "LLVM: A Modern, Open C++ Toolchain"