kirancodes.me
To Proof Maintenance & Beyond!

Trimmer: Context-Specific Code Reduction

Aatira Anum Ahmad, Mubashir Anwar, Hashim Sharif, Ashish Gehani, Fareed Zaffar

Abstract

We present Trimmer, a state-of-the-art tool for reducing code size. Trimmer reduces code sizes by specializing programs with respect to constant inputs provided by developers. The static data can be provided as command-line options or through configuration files. The constants define the features that must be retained, which in turn determine the features that are unused in a specific deployment (and can therefore be removed). Trimmer includes sophisticated compiler transformations for input specialization, supports precise yet efficient context-sensitive inter-procedural constant propagation, and introduces a custom loop unroller. Trimmer is easy-to-use and extensively parameterized. We discuss how Trimmer can be configured by developers to explicitly trade analysis precision and specialization time. We also provide a high-level description of Trimmer’s static analysis passes. The source code is publicly available at: https://github.com/ashish-gehani/Trimmer. A video demonstration can be found here: https://youtu.be/6pAuJ68INnI.

BibTeX
@inproceedings{Ahmad-al:ASE22,
  author    = {Aatira Anum Ahmad and
               Mubashir Anwar and
               Hashim Sharif and
               Ashish Gehani and
               Fareed Zaffar},
  title     = {Trimmer: {Context-Specific} Code Reduction},
  booktitle = {ASE},
  pages     = {168:1--168:5},
  publisher = {{ACM}},
  year      = {2022},
}

Related papers