COI:A First Step towards Truetype Bytecode Analysis
TrueType fonts are ubiquitous in today's computing environment. While TrueType is a scalable vector-based font format, optimal scaling requires font hinting for excellent font rendering at typical screen resolutions. TrueType font designers express font hints in a TrueType-specific stack-based bytecode language. Common font manipulations, such as font subsetting and merging, would therefore profit from the ability to analyze TrueType bytecode. Current tools must either omit bytecode, sacrificing readability, or conservatively generate duplicate bytecode, thus creating larger font files with considerable unused bytecode. Our work takes a first step towards TrueType bytecode analysis. We describe the design and implementation of COI, a new three-address intermediate representation for TrueType bytecode. COI greatly simplifies optimization for TrueType bytecode. We have implemented a tool that translates between TrueType bytecode and COI and performs standard static analyses on COI. Our experiments show that COI enables the removal of unused bytecode and reduce font size.