Lean and Efficient Software: Whole-Program Optimization of Executables
Abstract
Modern software is typically produced using home-grown or third-party libraries and pre-existing components. Consequently, a finished executable often contains unneeded code, duplicate defensive checks, and extra layers of procedure calls. Such bloat contributes to excess memory footprint, slower performance, and security vulnerabilities (by hosting more return-oriented-programming gadgets an attacker can hijack). The Layer Collapsing project is devising and prototyping techniques to substantially improve the performance, size, and robustness of binary executables. We are using static and dynamic binary program analysis techniques to perform whole-program optimization directly on compiled programs: specializing library subroutines, removing redundant argument checking and interface layers, eliminating dead code, and improving computational efficiency. A tool that successfully implements this goal will dramatically improve the way software is developed and deployed, providing new optimizations available late in the development process or even by the end user.
Document Details
- Document Type
- Technical Report
- Publication Date
- Sep 24, 2013
- Accession Number
- ADA591786
Entities
People
- Alexey Loginov
- Brian Alliet
- David Ciarletta
- David Cok
- Junghee Lim
- Suan Yong
- Tom Johnson
Organizations
- GrammaTech