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.

Open PDF

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

Tags

Communities of Interest

  • Cyber
  • Human Systems

DTIC Thesaurus Topics

  • Algorithms
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Contractors
  • Contracts
  • Data Sets
  • Efficiency
  • Energy Consumption
  • Optimization
  • Procedures (Computers)
  • Prototypes
  • Security
  • Software Development
  • Test And Evaluation

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computer Programming and Software Development.
  • Cybersecurity.
  • Distributed Systems and Data Platform Development