(Ab)using Compiler Tools
summary
Two practical binary tools are demonstrated: bloaty McBloatface inspects ELF/Mach-O files to attribute disk vs VM size to sections and symbols, shows how debug, BSS and data move, and offers a diff mode to see exactly what changed; BOLT rewrites ELF code layout using perf profiles and relocation info, performs identical-code folding (about 3% size drop on one service), basic-block and function reordering, and other binary-only optimizations, yielding about an 8% speedup on a large Facebook service even on top of PGO/LTO.
AI-written summary · about
chapters (15)
- 0:00Intro
- 1:19Blowing mcboatface
- 2:23File sizes
- 5:10Segments
- 6:13List Segments
- 7:25Track Changes
- 8:04Diff Mode
- 8:56Symbol Tables
- 10:55Bolt
- 11:55Bolt Demonstration
- 13:21Profile Guided Optimization
- 15:00Advantages
- 17:00Optimization Pipeline
- 19:53Summary
- 20:37Questions
related talks
34mCode Size Compiler Optimizations and Techniques for Embedded Systems
16mMind the Gap (Between Your Code and Your Toolchain)
19mExploiting Undefined Behavior in C/C++ Programs for Optimization: A Study on the(…)
45mA Few Effective gcc/clang Optimizations for Embedded Systems
50mDeep dive into a go binary
01h 04mThe Bits Between the Bits: How We Get to main()
21mGetting the Most Bang out of your Buck with Compilers on POWER
59mCompilers can be surprising
