DeduBB: Binary Code Size Reduction via Post-Link Basic Block Deduplication
summary
DeduBB is a post-link basic block deduplicator that replaces call/ret outlining with a save-and-jump sequence to deduplicate stack‑manipulating and cross‑module blocks without breaking red zone or frame semantics. It integrates with BOLT and Propeller, is profile‑guided to apply mainly to cold blocks, and scales to warehouse binaries. Results show 1.55%–18.63% size reduction on tested benchmarks, up to 25.8% on warehouse binaries, retains over 82% of maximal savings while staying performance‑neutral, and uses small (~20 byte) patch code.
AI-written summary · about
chapters (9)
- 0:00DeduBB introduction and motivation
- 3:21Limitations of deduplication tools
- 6:12Save and jump technique
- 10:11Patch code implementation
- 12:19Scaling with Propeller
- 15:38Results on small binaries
- 16:21Results on large workloads
- 17:24Summary and future work
- 19:39Q&A
related talks
16mCodeExtract: Enhancing Binary Code Similarity Detection with Code Extraction Techniques
24m(Ab)using Compiler Tools
19mCode Size Reduction Deep Dive: Zc Extensions and Dictionary Compression Custom Instruction
34mCode Size Compiler Optimizations and Techniques for Embedded Systems
15mDuplo: A Framework for OCaml Post-Link Optimisation
14mGuided Linking: Dynamic Linking without the Costs
52mDotty Linker: Precise Types Bring Performance
32mBit-Stealing Made Legal: Compilation for Custom Memory Representations of Algebr...
